Some update on my project...
FunkyFlashCart that includes:
Xilinx XC95144 CPLD chip
512 KB PRG FLASH
32 KB PRG RAM (Battery backed with DS1210)
512 KB CHR FLASH
32 KB CHR RAM
-ROMs and the mapper can be flashed with a simple parallel port JTAG cable.
-Can mimic many mappers, MMC3 & downwards.
--------
My project can now run SMB3.. Also reading ROMs + SRAM to the computer works now, but writing isn't implemented yet, I'll do that next.
The SMB3 title screen.
http://img319.imageshack.us/img319/6407/ffcart22fx.jpg
SMB3 running, the IRQs are a bit off now (by half a scanline).. Or is that normal when NTSC version of SMB3 runs on a PAL NES?
http://img147.imageshack.us/img147/9371/ffcart30co.jpg
Some levels have some glitch blocks, guess the SRAMs are too slow (-70).. The real carts have -10 ones
.. Also the IRQ glitch is in the middle, it should be in the left.
http://img225.imageshack.us/img225/4363/ffcart43xv.jpg
The Game Genie screen looks like this with my cart... any idea, why?
http://img112.imageshack.us/img112/2720/ffcart16oy.jpg
All the project files will be freely available once it's finished.. More updates coming later...
Looks good. Are there faster SRAM chips available with the same pins?
Jagasian wrote:
Looks good. Are there faster SRAM chips available with the same pins?
Yes, and the new board will have holes for narrower SRAM chips aswell.
-10 almost certainly means 100 ns, not 10 ns. 10 ns SRAM is still fairly expensive today, let alone 15 years ago.
Dunno why you're getting glitchy blocks though.
artoh wrote:
Hmm... letterboxed... oh, you're in PAL Finland... Have you tested anything on an NTSC system yet?
Quote:
The Game Genie screen looks like this with my cart... any idea, why?
http://img112.imageshack.us/img112/2720/ffcart16oy.jpg[/img]
Are you making sure to swap in the correct CHR for the Game Genie menu?
Good job so far.
Well, I've to admit something, I'm a bit confused. They're currently a lot of different flash card project, and I don't understand that at all. I've heard that was impossible to do because of how NES mappers works and how different they are, and now, I see many different projects. Squeedo was supposed to be a customized flash card only for developpement purposes with its "own mapper". But there I understand really nothing, why is there sudently all theese projects, and how god does this works.
Effectively, 512kb flash PRG and CHR can run all NES/FC games out there (exept pirate cards) and 32kb CHR RAM can do for all games, including Videomation that needs more that just 8kb (this is pretty useless, because this card isn't interessting, but because I've heard that 32kb chips are cheaper than 8kb chips, I aggree with that). But HOW do you programm the flash ? Is an usual EPROM programmer able to do that ? (I'm not much expericance yet about flash roms, but I hope I'll have somday).
And HOW does works the logic behind that to simulate an actual mapper ? And HOW is it possible for the NES unit to be able to read/write on the flash cartidge to any location between CPU $4018-$ffff and PPU $0000-$1fff (and also $2000-$2fff for games with 4-Screen mirroring or using a N106 chip) to be able to simulate the mapper, and tell what bankswitching it has to do when you write something somewhere ?
PS : I liked the background of your pictures, with a PS2 on a DVD player with the right corner on another machine (small PSX ? not sure 'bout that). On the right of the PS2 there is a stack of several DVD/PS2 games with Final Fantasy 10 on the top, next to the FF10 box there is a DVD/CD/Game that isn't in it's box (I hope this is not FF10 because that would be a shame to not tidy it correctly, it'll be covered of dust later, and I personally hate buying used game that aren't in good state), and just on the left of the TV is an yellow FC card (probabily pirate), and a PCB (probabily the one found on a NES/FC game, isn't it ? And we can see a wonderfull opened NES, with a nice cat watching all that stuff. It's right leg is just next to a TV adaptater, but unfortunately I can't see what I would see, i.e. the flash card itself. What a shame.
PPS :That would be cool to organize a "how-do you tidy your games" competition someday.
PPPS : Your pussy is really cool. Mine is a bit similar, but he's grey instead of brown, and also have a white neck and leg-end.
Bregalad wrote:
They're currently a lot of different flash card project, and I don't understand that at all. I've heard that was impossible to do because of how NES mappers works and how different they are, and now, I see many different projects.
Nothing is impossible
.. This project here is for playing commercial games, and it can already run one. The mapper chip can be programmed to be equivalent for almost any mapper. It is big enough to fit a MMC3-equivalent.
Bregalad wrote:
But HOW do you programm the flash ? Is an usual EPROM programmer able to do that ? (I'm not much expericance yet about flash roms, but I hope I'll have somday).
An usual EPROM programmer is able to program the flash chips - they are just normal flash chips, but an external programmer is not needed because you can connect the device into your pc with a simple cable and program the chips on the cart - without taking them off at all. This is possible, because the PC can force the CPLD chip into EXTEST mode, and it can control it's inputs/outputs freely. You don't even need to remove the cart from the console (i guess).
Bregalad wrote:
And HOW does works the logic behind that to simulate an actual mapper ? And HOW is it possible for the NES unit to be able to read/write on the flash cartidge to any location between CPU $4018-$ffff and PPU $0000-$1fff (and also $2000-$2fff for games with 4-Screen mirroring or using a N106 chip) to be able to simulate the mapper, and tell what bankswitching it has to do when you write something somewhere ?
After the game PRG and CHR ROM files are burned, the mapper for the game board is burned next (NES-TSROM is implemented so far). The NES itself doesn't write on the flash roms at all, but of course it reads them like a regular ROM. The CPLD chip has a total control over the NES memory space, it can map the FLASH and the SRAM to anywhere it's told it to map them.
Bregalad wrote:
PS : I liked the background of your pictures, with a PS2 on a DVD player with the right corner on another machine (small PSX ? not sure 'bout that).
That is S-CHI, my famiclone I bought from the philippines.
Bregalad wrote:
... but unfortunately I can't see what I would see, i.e. the flash card itself. What a shame.
I posted the picture of the cart in another topic, but here is the link again:
http://img173.imageshack.us/img173/7741/device5hv.jpg
Guest wrote:
-10 almost certainly means 100 ns, not 10 ns. 10 ns SRAM is still fairly expensive today, let alone 15 years ago.
Dunno why you're getting glitchy blocks though.
Yep, that's what I thought too..
The glitchy blocks are always in the same places, i'll try to figure it out.
tepples wrote:
Hmm... letterboxed... oh, you're in PAL Finland... Have you tested anything on an NTSC system yet?
Nope, not yet, because the only NTSC system I own is my famiclone and I'd need an adapter for it.
tepples wrote:
Are you making sure to swap in the correct CHR for the Game Genie menu?
I don't really know how it works.. but it shows the same display with any real game, even when they have different ROMs or a RAM there... But not with my cart.
artoh wrote:
tepples wrote:
Are you making sure to swap in the correct CHR for the Game Genie menu?
I don't really know how it works.. but it shows the same display with any real game, even when they have different ROMs or a RAM there... But not with my cart.
I think tepples misunderstood the fact that you are not running the Game Genie from your flash cart, but are running your flash cart through a Game Genie. Is that the misunderstanding? The pics show you plugging your flash cart into a game genie which is then plugged into a NES.
Jagasian wrote:
[I think tepples misunderstood the fact that you are not running the Game Genie from your flash cart, but are running your flash cart through a Game Genie. Is that the misunderstanding? The pics show you plugging your flash cart into a game genie which is then plugged into a NES.
Oh, right. It doesn't really show in the picture, but the cart has a real game genie attached. So the problem is that the real game genie screen looks bad.
Does the game genie work in your NES normally? If not, then no worries, it's a known problem with them.
Game Genie uses the NTSC blacker-than-black color (Palette $0D iirc), which can cause all sorts of sync issues on some TVs, since it's below true black, and close to the sync voltage. I don't remember if PAL has the same issue with low voltages, but IIRC it does.
artoh wrote:
An usual EPROM programmer is able to program the flash chips - they are just normal flash chips, but an external programmer is not needed because you can connect the device into your pc with a simple cable and program the chips on the cart - without taking them off at all. This is possible, because the PC can force the CPLD chip into EXTEST mode, and it can control it's inputs/outputs freely. You don't even need to remove the cart from the console (i guess).
That's just what I suspected, but it sounds too confortable to me to be sure. How usefull to developp games and immediately test them on the real hardware ! So you just have to implement the good mapper on the card (by the way, is the think you call "PRG-RAM" the SRAM usually mapped at $6000-$7000 ?) and to burn your PRG/CHR and here you are, you can test it.
Maybe this is stupid, but how dou you burn this from a PC ? Does it needs any software ?
It's also easy to burn EEPROM, but it needs to destroy a real card (well, with bad games like Adventure Island or Ghostbusters II, it's no problem, but found a bad SNROM game, huh ?). Also, I don't have an EPROM eraser, so once burned, if I mess up, I have to desolder my eprom and trash them to input something else (stupid, but this didn't happen yet fortunately).
Quote:
After the game PRG and CHR ROM files are burned, the mapper for the game board is burned next (NES-TSROM is implemented so far). The NES itself doesn't write on the flash roms at all, but of course it reads them like a regular ROM. The CPLD chip has a total control over the NES memory space, it can map the FLASH and the SRAM to anywhere it's told it to map them.
Wow, you're sure a master if you were able to made it working. Do you think it would be possible with MMC5 with all it's particular graphic features like the split mode and the EXGraphix mode (I don't know at all how they work in hardware, but it needs a syncronous scanline counter to send palettes, and switch the CHROM banks very fastly in a scanlie). How about MMC4, scince no american or european card uses it, it would be cool to simulate one ? And does MMC1 work well ?
The only problem I can see, it that the think is controlled by a MMC3 simulator, and not a real MMC3. If some info about the chip is misunderstood (for example the famous reversed mirroring about the MMC1 that caused so much problem), then it can work with emulators because all emulators writers does all the same thing wrong, work with the flash because it has be written to work, and don't work with the real mapper because it's different.
I really should build something like this someday. Did you send the board to some factory to build it ? What's this enourmous capacity ? It that a lockout chip defather or is that needed for the CPLD chip ?
At wich freqency does the CPLD runs ? It that fast enough to be able to swap data send to the PPU fast like MMC5 does ?
Bregalad wrote:
So you just have to implement the good mapper on the card (by the way, is the think you call "PRG-RAM" the SRAM usually mapped at $6000-$7000 ?) and to burn your PRG/CHR and here you are, you can test it.
Yep, that is what I meant. RAM that is in the PRG bus. That is the area for it normally, but if you burn a different file to the mapper chip, it can be mapped anywhere.
Bregalad wrote:
Maybe this is stupid, but how dou you burn this from a PC ? Does it needs any software ?
Yep a software made by me, available for free later.
Bregalad wrote:
Do you think it would be possible with MMC5 with all it's particular graphic features like the split mode and the EXGraphix mode (I don't know at all how they work in hardware, but it needs a syncronous scanline counter to send palettes, and switch the CHROM banks very fastly in a scanlie). How about MMC4, scince no american or european card uses it, it would be cool to simulate one ? And does MMC1 work well ?
The problem with MMC5 is that it's too complex and it can't fit on the chip.
MMC4 should be possible and MMC1 is not implemented yet.
Bregalad wrote:
The only problem I can see, it that the think is controlled by a MMC3 simulator, and not a real MMC3.
That is right.. but the MMC3 is a quite simple device after all, and Kevin Horton has documented it very well. But I still haven't got it quite right, because the only TSROM game working now is SMB3. Silver Surfer and SMB2 of the ones I tried, crash. The problem is I don't have any measuring equipment. Maybe when my school starts after a month, I'll have access to a logic analyzator.
Bregalad wrote:
I really should build something like this someday. Did you send the board to some factory to build it ? What's this enourmous capacity ? It that a lockout chip defather or is that needed for the CPLD chip ?
The board is manufactured in a factory, yes.. But all the parts are solderable at home. The big cap is just there because I couldn't find a physically smaller one from my junkbox. Now it has a smaller one.
If you want to build one, you can order a PCB from me (LATER!)
Bregalad wrote:
At wich freqency does the CPLD runs ? It that fast enough to be able to swap data send to the PPU fast like MMC5 does ?
The CPLD doesn't run internally on any frequency.. It's just pure logic.. so part of it runs at the PRG bus speed and part of it runs at te CHR bus speed. The MMC3 takes now 118/144 Macrocells (82% of the chip's capacity).
Implemented UNROM board! 22/144 Macrocells (16%)
Example of a schematic.
http://ameba.lpt.fi/~hataarto/nes/unrom_example.pdf
Ducktales 2 running perfectly:
Quote:
That is right.. but the MMC3 is a quite simple device after all, and Kevin Horton has documented it very well. But I still haven't got it quite right, because the only TSROM game working now is SMB3. Silver Surfer and SMB2 of the ones I tried, crash. The problem is I don't have any measuring equipment. Maybe when my school starts after a month, I'll have access to a logic analyzator.
Ah, okay, it's not finished yet. It may be because of tons of different reasons, so good luck !
Quote:
The CPLD doesn't run internally on any frequency.. It's just pure logic.. so part of it runs at the PRG bus speed and part of it runs at te CHR bus speed. The MMC3 takes now 118/144 Macrocells (82% of the chip's capacity).
I really don't understand at all how does this CPLD works. I was thinking it was a variant of a PIC like Memblers used on his Squeedo card, but look like it's not. I think you can freely design the logic that's inside, you should design youreself tons of NAND connexions, right ? Do you setup that trough the PC cable, like the flash roms ?
Quote:
Implemented UNROM board! 22/144 Macrocells (16%)
Example of a schematic.
http://ameba.lpt.fi/~hataarto/nes/unrom_example.pdf
I don't understand much that shematic (maybe because I'm more used to european than american shematics). UNROM is basically just a '161 chip used only to "memorize" the bankswitched bank, and a '32 chip to OR the current PRG-A12 with the latched value, so if the CPU reads the high 16k bank, the outpout will all be high so the bank value is $7 anyway.
Also, another pin (I've forget its name) is connected to RPG-/RW so, when writing to it, a new value is taken into the '161 counter's latches (and the chip is never used as it was supposed to be, as a counter, that's pretty fun, there is also some quad-D flip flops in the 74 series, but I think they were more expensive, or had more pins ?)
The only think I understand is the 3 OR gates on the right of the shematic, connected to PRG-A14, A15 and A16 (they're noted R instead, I think because how the flash chips are organized). Also
I also think that the square named LD8 does the '161 job, becuase there is whre the PRG Data input comes, and the G pin is similar that the one I described above, exept that it's NANDed with PRG A15 (hum, can't get why, because PRG-A15 is rather an outpout than an input here).
Quote:
I really don't understand at all how does this CPLD works. I was thinking it was a variant of a PIC like Memblers used on his Squeedo card, but look like it's not. I think you can freely design the logic that's inside, you should design youreself tons of NAND connexions, right ? Do you setup that trough the PC cable, like the flash roms ?
Yep, the CPLD setup is done thru the same cable as the flashing (takes around 30 seconds to program it). Using a PIC gives nice features like fast multiplying, which is uncomfortable to do with that CPLD and might take too much space.. The PIC on the Squeedo cart acts like a super mapper for own use, if I got it right... My thing can just run simple mappers that most of the commercial games have.
Just got Videomation (CPROM board) to work! It bugs on my PAL NES, though (same way as an emulator if set to a PAL mode).
Cool !
Now you're able to emulate all "simple" mappers, but not MMC5 and stuff, but this is probabily enough to be great. Very interesting. I hope you'll be able to run most of games that doesn't run right now.
UNROM shouldn't be a problem, because it uses off the shelf parts, as does AOROM, ANROM and CNROM.
BTW, have you tried getting CNROM or A*ROM going?
I can't wait to see MMC1 working!
Great work!
There are very few MMC5 games that I'd consider worth playing.
Among them are Just Breed (eng. translation), Uncharted Waters, and Castlevania 3 (which I prefer to have the superior VRC6 version).
MMC5 would be nice to have, but MMC1 and MMC3 have a far greater amount of games.
drk421 wrote:
UNROM shouldn't be a problem, because it uses off the shelf parts, as does AOROM, ANROM and CNROM.
BTW, have you tried getting CNROM or A*ROM going?
I can't wait to see MMC1 working!
Great work!
Haven't tried CNROM or A*ROM yet... now trying to get MMC1 (Zelda2) working before doing anything else
.. I also made a PC program, that can read the NES program counter, current rom address, data byte and the chip selects while the device is running (by using JTAG SAMPLE instruction)... Very valuable debug tool for testing different mappers and seeing where they crash and are they running in the correct bank.
The developing is slow at the moment, because ROM burning is very slow now (takes 2,5 hours to burn a 256KB game). I fought with MMC1 for a while until I decided to read the Zelda2 ROM back and saw that it's half empty.. I'll make a PIC cable later that can send burning commands to the FLASH thru the CPLD faster.
drk421 wrote:
There are very few MMC5 games that I'd consider worth playing.
Among them are Just Breed (eng. translation), Uncharted Waters, and Castlevania 3 (which I prefer to have the superior VRC6 version).
Didn't
YOU made a Just Breed card running on the real NES ?!? You reallly shouldn't complain lucky man. I'm now right to finish the game, and the several remaining battles are incredibly hard. I hope I'll be able to finish it. (I use no save states).
2,5 hours for a 256kb game, this is really long. However, I'm glad to see MMC1 working (it should be more complicated than MMC3 with it's internal 5-bit buffer, isn't it ?).
About the MMC5, if the MMC3 uses 82% of the CPLD's capacity, the MMC5 would be arround 698%
drk421 wrote:
There are very few MMC5 games that I'd consider worth playing.
Among them are Just Breed (eng. translation), Uncharted Waters, and Castlevania 3 (which I prefer to have the superior VRC6 version).
MMC5 would be nice to have, but MMC1 and MMC3 have a far greater amount of games.
It sounds like the FunkyFlash hardware should be able to support 90% of the entire NES and Famicom game library. The mappers it can't support only have a small number of games that use them. Hence a person could simply buy the actual carts that are not supported by the FunkyFlash cart.
More like 99%. I'd be happy to implement some MMC myself, would like to do Konami ones but haven't found sufficient information and I'd rather not resort to emulator source. I've already got a Xilinx CPLD NES setup (XC95108 :\) so shouldn't be too hard to port them to the FunkyFlash.
sounds like macrocell envy
I've only got 64 to work with, but I'm still waiting for my flash programmer or devkit pcbs to arrive before I can test out the cartridge pcbs. I'm this ---->| |<---- close to building a flash programmer out of a PIC and some shift registers for the address latching.
Yeah it's true, I am pretty disappointed that MMC3 likely won't fit into my CPLD, at least without complex manual routing. I also have an assortment of Altera 7128s but apparently Altera LEs can implement less logic in each element *sigh* There should really be no problems implementing any "mappers" with the 95144 since someone successfully implemented every non-MMC5 in a 144 macrocell XC3042 (1989) FPGA, I only wish I could derive equations from the fusemaps!
kyuusaku wrote:
More like 99%. I'd be happy to implement some MMC myself, would like to do Konami ones but haven't found sufficient information and I'd rather not resort to emulator source. I've already got a Xilinx CPLD NES setup (XC95108 :\) so shouldn't be too hard to port them to the FunkyFlash.
I'd really love to have help with the mappers, because I am scared I'll have to make all of them myself
And it will be a free project after all. Yep, your work would be very easy to port! I just can't get my MMC1 work properly
Guest wrote:
sounds like macrocell envy
I've only got 64 to work with, but I'm still waiting for my flash programmer or devkit pcbs to arrive before I can test out the cartridge pcbs. I'm this ---->| |<---- close to building a flash programmer out of a PIC and some shift registers for the address latching.
I think almost all (if not all) CPLDs and FPGAs work as a gigantic shift register. They have 3 bits per input/output pin.... (Tristate/Output/Input).. All the ROM address lines, data lines and control pins are connected to the CPLD in my project (because it has so many pins).
By clocking the shift register from the parallel port, I can program the ROMs. It is quite slow, though because the register is 432 bits and my current ROM chips need 4 commands per write.. And also the WR pin from LOW->HIGH so that is 432*2*4=3456 writes to the parallel port / written byte... With the DLPortIO driver I can write 100000 times / second to the port.. So that is 100000/3456 = Around 29 bytes / second !
kyuusaku wrote:
Yeah it's true, I am pretty disappointed that MMC3 likely won't fit into my CPLD, at least without complex manual routing.
Yep, I had a XC95108 before.. and I was hoping I could make the project with it, but I soon noticed it won't fit a MMC3, which was my goal.
I really want to use a PLCC device too :( I think I may go track down some XCS10s
Artoh, why don't you go ahead and print circuit boards and sell them, so that other people can help add support for more mappers? That way there are no issues with porting from one hardware setup to another.
kyuusaku wrote:
I really want to use a PLCC device too
I think I may go track down some XCS10s
I was really hoping I could use the 108 in my project so most of the people wouldn't be scared of building one.. But the QFP package isn't that bad after all. First time in my life I soldered one and it worked instantly. The secret is to use a lot of flux. First attach the IC from two opposite corners and then apply flux from a bottle to all of the pins. Put a big blob of solder on your iron tip and swipe it thru all the pins (while pressing the IC down to the board). Then there will be 2-3 shorts and they can be taken off with desoldering braid. I didn't use any microscope or a magnifying glass, just my bare eyes. Takes just 5 minutes to solder it. A quality PCB will help a lot with the solder job.
Jagasian wrote:
Artoh, why don't you go ahead and print circuit boards and sell them, so that other people can help add support for more mappers? That way there are no issues with porting from one hardware setup to another.
I'll have to make a few corrections to the board first (see the jumper wires).. And then there is a problem with the DS1210-chip.. It's the cause for the glitch blocks in SMB3 because if I override it with jumper wires, the glitches are gone. I ordered a DS1218 sample, and I'll try it instead, it should be faster. The first board will be expensive (a $58 set up fee) or something, but boards after that should be cheap. I'll order few PCBs soon and I am ready to sell few of them to people who want to try building one.
it was me.. forgot to log in
Edits:
-Super Mario Bros 2 (E) works now along with SMB3. Silver Surfer too.
-Also AMROM (Super Off Road) and AOROM (Battletoads) working.
-Kirby too (with the save feature!)
-All the glitchy blocks are gone now too (was a memory CS prob).
-MMC3 IRQs work now very well, if not perfect. (waits the A12 line to be low for a while, then decreases counter on a rising edge)
-MMC3 takes now 127 macrocells..
Ordered some PCBs from a factory. I'll have one or two available for people who really want to try building one at the moment. There also will be a USB cable for the device because the parallel port is so terribly slow. I hope a 512KB will transfer in 5 minutes then. I'll also have to write a software to program the CPLD thru the USB cable.. and I hate coding so much
artoh wrote:
Ordered some PCBs from a factory. I'll have one or two available for people who really want to try building one at the moment. There also will be a USB cable for the device because the parallel port is so terribly slow. I hope a 512KB will transfer in 5 minutes then. I'll also have to write a software to program the CPLD thru the USB cable.. and I hate coding so much
Can you give us a complete list of parts that are needed to build the card? That way we can figure out the price for ourselves.
Jagasian wrote:
Can you give us a complete list of parts that are needed to build the card? That way we can figure out the price for ourselves.
Sure, here is the part list for the cart. The cable isn't done yet.
1 x 220pF ceramic R5
6 x 10nF ceramic SMD 0805
6 x 100nF ceramic SMD 0805
1 x 100uF electrolytic cap
1 x DS1218S
2 x AM29F040B DIP
2 x 62256 SRAM DIP
1 x XC95144-15PQ100
1 x 3V lithium battery
And that is all you need for the cart. Simple
So I won't be able to use my Xilinx Parallel III cable?
kyuusaku wrote:
So I won't be able to use my Xilinx Parallel III cable?
It has a different pinout. I am using a home-made cable similar to that right now... But it's too slow for FLASH programming.
Picture of the final board:
http://img311.imageshack.us/img311/2828/ffcart25th.jpg
There are now holes for wiring the lockout chip if someone really wants to connect one
Still the USB cable needs to be done...
artoh wrote:
Picture of the final board:
http://img311.imageshack.us/img311/2828/ffcart25th.jpgThere are now holes for wiring the lockout chip if someone really wants to connect one
Still the USB cable needs to be done...
When the USB cable is done, please, don't just sell the PCB, also sell pre-made carts. For many people, it will be too difficult to solder the CPLD, and you also deserve to make money off of this. I am interested in buying a pre-built cart, and if you aren't going to sell pre-made carts, I am still interested in the buying a PCB and the directions for building one myself... though I fear soldering that CPLD
BTW, what is the URL that is written on your PCB?
The only thing I'm concerned about is finding the CPLD for sale individually, cheaply :\
kyuusaku wrote:
The only thing I'm concerned about is finding the CPLD for sale individually, cheaply :\
Hence the reason why we need economies of scale, i.e., we need somebody to buy the parts in bulk and build batches of flash carts. They could make money doing it, and everybody else would save time and money by buying from them. It could actually end up being more expensive for people to build their own.
I think not, if I were to build the carts for people I would charge around $100 for a populated board assuming it takes an hour to solder and that I break less than 1 in 5 CPLDs.
artoh, how about selling the thing as a kit?
Jagasian wrote:
When the USB cable is done, please, don't just sell the PCB, also sell pre-made carts.
BTW, what is the URL that is written on your PCB?
-
Hence the reason why we need economies of scale, i.e., we need somebody to buy the parts in bulk and build batches of flash carts.
The url is
http://iki.fi/fuzb/nes, but nothing there yet.
I can't invest on a lot of parts right now because I am saving for a big trip, maybe in the beginning of next year I could build a few. But I don't mind if someone starts hand-building those carts and sells them to people.
kyuusaku wrote:
The only thing I'm concerned about is finding the CPLD for sale individually, cheaply :\
-
artoh, how about selling the thing as a kit?
You can get individual CPLDs from the Xilinx webshop for example, but the shipping is around $20, which is more than the cost of the chip.
The same is with the kit thing, I can't afford buying parts right now
Maybe if I get someone to fund them.
If you are ok with other people making and sell carts based on your intellectual property, then you could contact Tomy at Tototek. I am sure that he would be interested in making and selling a NES flash cart.
Jagasian wrote:
If you are ok with other people making and sell carts based on your intellectual property, then you could contact Tomy at Tototek. I am sure that he would be interested in making and selling a NES flash cart.
It's fine if someone builds the carts at home by hand and is selling them. But of course if someone sells machine assemblied carts, then I want a share.
I wonder if the Xilinx headquarters would allow a pickup :) Shipping for me is $10 and I'm pretty sure they just send it from a local distributer.
kyuusaku wrote:
I wonder if the Xilinx headquarters would allow a pickup
Shipping for me is $10 and I'm pretty sure they just send it from a local distributer.
Mine came from Singapore.. and in a very huge cardboard box that could fit 1000 of those chips
Do you have a good source for DS1218S? I didn't realize it was SOIC. Also, do the flash have to be Atmel and what is the maximum latency?
At least for me, if the PCB costs 20 euros, I'm looking at $80 + the shipping of the PCB and whatever it takes to build the cable for a rough cost estimate.
kyuusaku wrote:
Do you have a good source for DS1218S? I didn't realize it was SOIC. Also, do the flash have to be Atmel and what is the maximum latency?
.
At least Digikey sells DS1218S.. they also sell the CPLD but not the slower (-15) version that would be the cheapest. The flashes are AMD AM29F040B and 90ns ones
I'm going to wait until kyuusaku figures out all of the details for obtaining the parts in the USA. Then I'll just go with that
I've been waiting for a NES flash cart for at least a decade now, so I guess I won't wimp out due to a bit of highly detailed soldering.
artoh wrote:
At least Digikey sells DS1218S.. they also sell the CPLD but not the slower (-15) version that would be the cheapest. The flashes are AMD AM29F040B and 90ns ones
Oops, that's what I mean. So does your writing algorithm only support AMD Flash at 90ns or can I use some other 29F (or even 28F?) at 100 or 120ns?
kyuusaku wrote:
Oops, that's what I mean. So does your writing algorithm only support AMD Flash at 90ns or can I use some other 29F (or even 28F?) at 100 or 120ns?
Yep, the algorithm supports now only AM29F040B but it shouldn't be too hard to change the software to support some other flashes as well (as long as they are 5V programmable). I believe the original NES carts use 100ns chips, so guess you could use those. 90ns is guaranteed to work
OK then, will pick up the AMD 29F040Bs.
I think NES carts are 200ns. Even FastROM SNES games are 120ns ;)
How is your USB cable going to work? Is it based on an existing USB JTAG?
kyuusaku wrote:
Even FastROM SNES games are 120ns
While the Super NES CPU runs at up to 3.6 MHz, the NES PPU runs at 5.4 MHz.
Thats true, wasn't thinking of the PPU. Looking at a CRAM game now, I see that they chose 80ns.
Edit: BTW artoh, I see in your old picture you are (were) using Winbond 29Fs, does this mean that you aren't supporting them anymore?
kyuusaku wrote:
Thats true, wasn't thinking of the PPU. Looking at a CRAM game now, I see that they chose 80ns.
Edit: BTW artoh, I see in your old picture you are (were) using Winbond 29Fs, does this mean that you aren't supporting them anymore?
Yep, because I couldn't even get the IDCODE off the Winbonds, so I gave up
The USB cable is using a FT2232 chip, it has a JTAG mode and they give out a free JTAG DLL.. so it should make everything easy.
I made myself a PCB already for the USB-cable, but their own configuration software is having trouble with the device. I think the weird EEPROM I have now is not compatible with the chip but I ordered a sample from microchip, 93LC46.. So waiting for that to come and then if the cable works, I'll order a bunch of PCBs for that too.
So the USB-cable EEPROM needs to be configured first but FTDI has their own software that can configure it on the board when you have put the device together.
Cable proto (the USB chip is under the board):
http://img343.imageshack.us/img343/5562/usbcable7mr.jpg
Yikes, I was hoping it was going to be a USB JTAG cable with new pinout, wasn't expecting another PCB to build :) You'll be selling this PCB too right?
kyuusaku wrote:
Yikes, I was hoping it was going to be a USB JTAG cable with new pinout, wasn't expecting another PCB to build
You'll be selling this PCB too right?
Those USB JTAG cables are so expensive.. Yep, I'll sell the both PCBs and I think the price for both together will be around $15 shipped, does it sound fair? Also the chip on the USB cable has even tinier package than the CPLD (but less pins).. but it is still easy to solder
Will this also function as a JTAG cable too or just work with FunkyFlash?
$15 sounds too fair shipped, are you sure you can do this?
Now where can I obtain the FT2232? Which package is it? FTDI chips are pretty hard to find in the US.
You're going to make me buy a new soldering iron for this project!
kyuusaku wrote:
Will this also function as a JTAG cable too or just work with FunkyFlash?
$15 sounds too fair shipped, are you sure you can do this?
Now where can I obtain the FT2232? Which package is it? FTDI chips are pretty hard to find in the US.
You're going to make me buy a new soldering iron for this project!
Nope, it will work only with my device..
Yes, $15 is enough for me.
I got my FT2232C directly from the manufacturer (from UK).
I am sure you won't need a new soldering iron.. I am using a huge-tipped 20 EUR one.. works fine. But of course it would help a little if it were smaller
Ack, it's £24.16 shipped outside of Europe from FTDI :(
Would some other Americans care to split shipping with me?
What is the ICT IC? a MCU?
Will the programmer need to be connected to the cart via a 10pin IDC cable? I have no tools or skills for crimping IDC.
I've done a few calculations and now with the FT2232C, the project is reaching $200 in parts:
Code:
1 x PCB $15.00
1 x 220pF cer. R5 (jameco, 10pk) $0.45
6 x 10nF cer. 0805 (.01uF, jameco, 100pk) $6.30
6 x 100nF cer. 0805 (.1uF, jameco, 100pk) $8.00
1 x 100uF electrolytic cap (jameco) $0.45
1 x DS1218S (digikey) $13.20
2 x AM29F040B DIP (????) $10-20 + s/h
2 x 62256 SRAM DIP (jameco, 5.49 x 2) $10.98
1 x XC95144-15PQ100 (xilinx) $29.65 s/h included
1 x CR2032 (jameco) $1.25
+ jameco shipping $10?
+ digikey shipping $10?
+ cost of programmer
1 x FT2232C $43.55
kyuusaku wrote:
What is the ICT IC? a MCU?
Will the programmer need to be connected to the cart via a 10pin IDC cable? I have no tools or skills for crimping IDC.
ICT one is an EEPROM for the USB chip. But that one was not recommended for it and it didn't work (Microchip 93LC46B or something is, still checking it out)
Yep, or any connector that you like.
I don't have tools for them either, I just put them under the foot of my table/chair and crush.
kyuusaku wrote:
1 x DS1218S (digikey) $13.20
Or then a free sample.. or a DS1210 DIP works too if you use a little wire.
kyuusaku wrote:
16 x 10nF cer. 0805 (.01uF, jameco, 100pk) $6.30
6 x 100nF cer. 0805 (.1uF, jameco, 100pk) $8.00
There must be places that sell individual SMD caps.. I have a local shop that sells them for few cents apiece.. Or if you want to save, don't put any decoupling caps for the CPLD at all (under the board).. Mine works without them
kyuusaku wrote:
1 x FT2232C $43.55
I found
http://www.mouser.com/ that sells those chips for $7.950 apiece.
I also opened the webpage, but there is really nothing there yet
http://iki.fi/fuzb/nes
Took your suggestion and am now getting samples from Maxim/Dallas Semi, hope they actually arive :D
I don't know what to say about you using your foot or chair to crimp ;)
If it's stable without the decoupling caps then I could care less. Is that all the SMD caps are used for?
kyuusaku wrote:
Took your suggestion and am now getting samples from Maxim/Dallas Semi, hope they actually arive
I don't know what to say about you using your foot or chair to crimp
If it's stable without the decoupling caps then I could care less. Is that all the SMD caps are used for?
So you don't need to order from Europe? I am taking a two week trip to England next month, and I need to save money until after I am done with the trip. So is total parts cost still around $200, kyuusaku? I might chicken out and buy a pre-built one from Membler's Industries
kyuusaku wrote:
If it's stable without the decoupling caps then I could care less. Is that all the SMD caps are used for?
Yep, only for the decoupling. They are recommended by Xilinx but I was too lazy to put them on the new board and it did work well without them. But I still recommend that you solder them on the board at some point
I don't need to if I order the FT2232C from Mouser (total will be under $15 from them)
Well, I got a free sample of the DS1218S so that saves $20 or more after shipping.
So now I'm looking at probably around $110 + the rest of the programmer, which doesn't appear to have any other rare or too expensive parts, less than $10 worth and all Jameco orderable.
PCB - $15
220pF cer. (Jameco) - $0.45
100uF ele. (Jameco) - $0.45
DS1218S - Free samples
AM29F040B (2) - $15-25 total - hard to find!
62256 (2) (Jameco) - $10.98
XC95144 (Xilinx shop) - $29.65
CR2032 (Jameco) - $1.25
Jameco shipping - $10?
FT2232C (Mouser) - $15 total
kyuusaku wrote:
AM29F040B (2) - $15-25 total - hard to find!
I am going to design the new software in a way that it's easy to add algorithms for other Flash EEPROMs. But at least that one is guaranteed to work. Memblers gave me this:
http://findchips.com ... It finds a lot of AM29F040B, but not many PDIPs.. there are a lot of 120ns ones.. and my calculator says they SHOULD work.
For 120ns, there's this guy:
http://cgi.ebay.com/ws/eBayISAPI.dll?Vi ... 7501296459
120ns is ~8.333MHz right? If it all comes down to the PPU, a PPU cycle is ~175ns.
What does the 'B' designate in AM29F040B? I've ordered from this company Futurelec before
http://www.futurlec.com/ICFLASH.shtml They sell 29F040 90ns in a DIP form for $6.50 or an Amtel one for $7.90 comes in a DIP form too. Actually last time I ordered from them, I got a few 29F040's, but they sent me AM29F040's instead, I guess they must have been out of the cheaper ones, oh well
Yeah, you'd have a hard time finding any memory that's too slow for the NES (even the PPU, I thought it was 2.68Mhz). 200ns+ should be ok, I guess as long as the memory decoding isn't terribly slow.
I have some AM29F040s (non-B, date code is 1996) and they worked OK. I also had a few PLCC AM29F040B with date code (I think) 1993 or so, but it didn't work fully on Squeedo. Wouldn't go into command mode. I can't find a datasheet for the non-B one, so I dunno what difference there is (if any). A later 29F040B I have does work.
I just got the USB cable working and the JTAG support working, but it still needs a lot of software. It does not burn flashes yet, but it will burn them today. Then i'll need to code the mapper writing too, which will be kind of hard ;_;
***EDIT***
Now the speed is around 512 Bytes/Sec for AM29F040B
I still might get it faster.
I also broke the CPLD already (my multimeter probe hit the wrong place, making one pin permanently high).. Ordered some more..
Quote:
Now the speed is around 512 Bytes/Sec for AM29F040B I still might get it faster.
It would take 17 minutes to burn many of the largest games (512KB) to the cart. Seems a little slow. Flashing a motherboard's BIOS takes about a minute and it is the same size as the flash you are using.
Now burning a 512KB game takes 5 minutes. I am also thinking of combining the USB cable board and the Flash Cart board... So there would be just one board needed, and the new board would use SMD chips instead of the PDIP ones that are too hard to find.
artoh wrote:
Now burning a 512KB game takes 5 minutes.
I don't completely understand what's happening here. I have written many flash drivers, for lots of different embedded devices (mostly mobile phones) and 5 minutes to program 512KB is very slow. What is the bottleneck with this system? It cannot be the flash chip itself, there are no flash's that are that slow to erase/write, even the NAND based ones you are using.
--EDIT--
I just re-read the thrread and it looks like you are re-programming the flash by directly manipulating the IO pins on the CPLD via test commands on the PC. This is almost certainly the bottleneck, and there's not much that can be done about it. You could speed things up by using a bootloader and another data channel (usb or uart) but I wouldn't bother with it until the other more critical issues are worked out.
Well, thats not so bad. Consider that there are only less than 30 non-Famicom NES games that use 512KB or more.
Now, besides the MMC5 games, are there other NES games that it cannot play? As we have already seen, the RAMBO and FME-7 chips are slightly more advanced in capabilities but less complex in design than Nintendo's MMC3, but they should be able to fit into CPLD. What about other unlicensed mapping schemes, like Codemasters, AVE and Color Dreams. Their mapping schemes are fairly simple and amply documented. If you can implement the MMC2 you can implement the MMC4, and the same should go for MMC3 and MMC6. How is the MMC1 coming?
Moreover, while most NES MMC1 and MMC3 boards are rather simple, there are some unusual but valuable boards that play with ROM and RAM routing, like: SOROM and SUROM; TLSROM/TKSROM, TQROM, TR1ROM/TVROM, CPROM. Will the device be unable to handle any of these?
To save you having to dig stuff up in the middle of a feasibility study:
UN-licensed-ROM
Codemasters mapper is just U*ROM with a lockout defeat added. But like Rare games, Codemasters games tend to be very sensitive to timing so make sure that your CPLD can react fast enough to switch banks on the very next cycle.
Octal D based mappers
#11 Color Dreams (Exodus) isn't more complex than a CNROM and an A*ROM at the same time. #78 Irem is like Color Dreams with 16 KB PRG swapping (like UNROM) rather than 32 KB. GNROM (Gumshoe) is the same as Color Dreams with the high and low nibbles swapped.
Great Hierophant wrote:
Well, thats not so bad. Consider that there are only less than 30 non-Famicom NES games that use 512KB or more.
Actually most of my MMC3 implementations require that you mirror the whole ROM to 512KB.. that it can find the start of the code from the last bank
Great Hierophant wrote:
How is the MMC1 coming?
MMC1 still isn't ready.. having some odd problems with it, but someday it will work. I have been working on another parts of the system now.
Great Hierophant wrote:
Moreover, while most NES MMC1 and MMC3 boards are rather simple, there are some unusual but valuable boards that play with ROM and RAM routing, like: SOROM and SUROM; TLSROM/TKSROM, TQROM, TR1ROM/TVROM, CPROM. Will the device be unable to handle any of these?
Sure, all of those can be implemented (and some are by now).
***EDIT***
The first mapper has been burned thru the USB interface!
I modified the board a little, it has the USB cable combined in it now and it has a place for a real lockout chip and for different versions/packages of the battery backup chip, (DS1210/DS1218/DS1218S),.
Also the new board won't support burning the game while it is connected to the nes (it really did not work that well, so i abandoned it
)
Just want to say Maxim/Dallas never sent me my DS1218S :\ at least I still haven't received it after a few months. Guess it'll have to be purchased.
kyuusaku wrote:
Just want to say Maxim/Dallas never sent me my DS1218S :\ at least I still haven't received it after a few months. Guess it'll have to be purchased.
Funny, because I always get my samples from there.
Well, the new board will accept a DIP DS1210 and a DIP DS1218 too.
I burned one I/O-pin from the CPLD and now waiting for some new chips to come, they ship on the middle of october
..
artoh wrote:
Also the new board won't support burning the game while it is connected to the nes (it really did not work that well, so i abandoned it
)
Neither does the EFA flash cart for Game Boy Advance, so people will likely accept that limitation easily.
tepples wrote:
artoh wrote:
Also the new board won't support burning the game while it is connected to the nes (it really did not work that well, so i abandoned it
)
Neither does the EFA flash cart for Game Boy Advance, so people will likely accept that limitation easily.
Well, the 256Mb EFA can, on average, store about 4 games at a time, and games transfer extremely fast. I am still eagerly awaiting the FunkyFlash. I think that artoh should go into mass production once he is done. Screw the kit idea. He should have pictures of Euros in his head.
It is more difficult to support a flashable multicart for the NES because some games use PRG ROM and CHR ROM while others only use PRG ROM. Of course, the CPLD would have to be re-programmed if the game uses different mappers each time a new game on the cart is selected.
Loading CHR ROM from flash into a 256 KB CHR RAM and making it writable only for games that don't have a separate CHR section should do the trick most of the time, right? Or is a 256 KB RAM too expensive for a project like this?
It will do the trick every time
Any progress? I can't wait to buy one.
Jagasian wrote:
Any progress? I can't wait to buy one.
Not much. Waiting for some new boards to come from the factory...
Been busy with my studies. Basically only the PC software needs to be improved. And there is still no MMC1...
artoh wrote:
And there is still no MMC1...
I started on a MMC1 implementation using schematic capture a while back (Altera tools). It's not working yet, and other than simulation I have no way of testing it. I was hoping to convert it to VHDL so it would be easier to share. I would say it's about 90% through the initial creation.... which means there's still a lot to do, but if you're interested I'm more than willing to help. Your project overlaps quite a bit with what I've been doing, so having something in common would be great. I'm pretty sure the Xilinux Webpack (or whatever they call it) is free, so I could probably convert it pretty easily.
One very difficult issue with this cart is that you have to solder a surface mounted CLPD yourself to use it. This device has roughly 120 pins, which means up to 120 possible mistakes with pin-point soldering. It simply won't do for almost anybody. Its tricky enough modding SNES consoles for a 50/60Hz switch and region free and that only requires desoldering and lifting three pins.
I see the picture of the cart has been updated to show the new version with USB support:
http://ameba.lpt.fi/~hataarto/nes/
I love the logo etched into the PCB. Membler's apparently already has a kit. I hope it works for him, so that we have a source for pre-built carts. The masses will only be able to enjoy this if they can buy a pre-built unit.
Thanks to Jagasian for pointing this thread out to me. I'm surprised I didn't see it before! I wish I could offer more than words of encouragement right now. If there is any assistance I can offer, please let me know. As much as anybody, I've been waiting for one of these devices to hit the market, so I'm definitely ready to give the cash for a finished unit...I wish I could contribute more to make things a go, though.
THat kind of soldering is difficult for even very experienced solderers.
-Rob
I wish Tototek or Memblers would start cranking out copies of this cart. I've got a fever, and the only prescription is more FunkyFlashCart!
Just an update of what's going on over here.
I finally bought some pro-quality soldering gear.. works great.
My first attempt to solder .5mm pitch (started on the USB chip), the soldering went really well. Except that I dumbly managed to bend the pins of the chip on one side, after the rest of it was attached to the board. D'oh.
So I'm gonna have to break out my heatgun, hopefully I can pull that off without burning anything up (especially the board). Looking up desoldering stuff now I kinda wish I had bought some of that Chip-Quik stuff.
Hey Memblers,
Any pics of the new soldering gear (like a manufacturer's link)? I didn't know they even sold something like that for home use!
-Rob
Yeah, what did you get?
Please elaborate.
Surface mount stuff?
Ah, the only equipment unsuitable for home use is the stuff that costs half as much as a home.
My setup is nothing extreme, sorry to disappoint, heheh. It's a soldering station, Xytronic 137ESD.
http://www.circuitspecialists.com/products/full/3528.jpg
http://www.xytronic.com/pi/p-137esd.htm
This thing is really powerful. The time between turning it on and reaching my set temperature is around 15 seconds (uses the same heater and tips as the Hakko 936). My other iron took about 5 minutes and would lose it's heat when soldering a lot of joints quickly.
For surface-mount I bought a 'mini-wave' tip, the end is wide, flat and shaped to hold a drop of solder so it can be dragged across the pins. After adding flux to the pins.
I bought one of these:
http://cgi.ebay.com/ws/eBayISAPI.dll?Vi ... 4430911199
about a year ago, and it was one of the best purchases ever made.
I bought some of the super fine conical tips too.
Any progress in the last two months?
yeah, it would be really nice to know if there has been any progress on this
Is this project still alive?
A big bump on this one
Anyone herd anything new on this? Is the project still alive?
From
the site:
Quote:
Q: Will you sell ready-made units?
A: No.
Q: Will you be getting my business?
A: No.
I was hoping for something for something that wouldn't involve soldering, but this project has let me down.
Well, where else do you think you could send your business exactly? Nobody else in the industry makes anything like this. Besides, if the thing ever becomes available I'm sure there will be members on this forum willing to sell assembled kits.
cd_vision wrote:
Well, where else do you think you could send your business exactly?
To
oth
er p
lat
for
ms.
Quote:
I'm sure there will be members on this forum willing to sell assembled kits.
In that case, I'm likely to buy from them as long as they don't add some exorbitant labor markup.
So, would anyone like to volunteer to sell assembled kits?
-Rob
I'd love to but there are no unassembled kits to make them from currently.
Quote:
I'd love to but there are no unassembled kits to make them from currently.
Right, but when they are, would you?
-Rob
rbudrick wrote:
Quote:
I'd love to but there are no unassembled kits to make them from currently.
Right, but when they are, would you?
-Rob
I have confidence in my soldering ability all except for the tiny legs on that processor, I mean, it's SMALL. I may need to get some extra tools but if this becomes reality there's a very strong possibility I would offer such a service.
Hi,
been too busy but the files are available at
http://ameba.lpt.fi/~hataarto/fun
if someone gets something out of them
hey, welcome back!
dXtr wrote:
hey, welcome back!
thanks, not sure when I'll be back again, though
kyuusaku wrote:
Thanks for MMC3!
ur welcome, the MMC3 is a mess. It was actually the first thing I ever did with that software.. and when I got it to work, I did not bother tidying it ..
Even so, your schematics are more clear than all the documentation regarding the IRQ counter, it really cleared a few things up for me.
Do you still want MMC1? I posted a really rough (a few errors) implementation just a little while ago, I will fix them and repost if you like :D
kyuusaku wrote:
Even so, your schematics are more clear than all the documentation regarding the IRQ counter, it really cleared a few things up for me.
Do you still want MMC1? I posted a really rough (a few errors) implementation just a little while ago, I will fix them and repost if you like
The IRQ part is actually one of the messiest.. and it was done by trial-and-error..
At least it has been working with all the games I tried.
Yeah, I'd want the MMC1 .. I could try to get it work with my cart
Now...
Is there any hope to see this cart project completed, fixed and sold to NESdeveloppers soon ? I really wish so. Tell us if anything new.
What ever became of this project, did I miss a post or a new forum thread. I havnt seen an update on the web page for quite some time.
I hope it wasnt abandoned.
I think the last update was this:
http://ameba.lpt.fi/~hataarto/fun/
otherwise bunnyboy presented some time last year another atempt at a universal flash cart called NES POWERPAK:
http://nesdev.com/bbs/viewtopi ... 0187#20187
Any news on this project?
-Mike, believes in freedom
I was looking through my electronic parts the other week, and found a PCB for this that I'd gotten from artoh.
You know this thread is almost 4 years old, right? Probably discontinued, but it did work (though I never fully built mine, I still have all the parts).
Lord Nightmare wrote:
Can you scan the PCB?
LN
I don't have a scanner, best I could do is get some pics, if that helps any.
good enough. can you get both sides of the pcb?
LN
Memblers wrote:
I was looking through my electronic parts the other week, and found a PCB for this that I'd gotten from artoh.
You know this thread is almost 4 years old, right? Probably discontinued, but it did work (though I never fully built mine, I still have all the parts).
What is this worth to you, would you sell it with all the parts so I can finish it and try it out.
Does anyone know if the files for this project, once available at
http://ameba.lpt.fi/~hataarto/fun , are still available somewhere else?
I'm planning on making a reproduction of artoh's cart for myself because i find it the most complete and detailed diy cart project out there. I got some of the files from
http://www.nesworld.com/funkyflash.php , but even that i still can't figure out how to program the mapper (xilinx cpu) using that codes and i couldn't find any pc software for flashing the cart through the files.If there is anyone able to help me with this one i would be very grateful. Thanks in advance!
Asphyx wrote:
Does anyone know if the files for this project, once available at
http://ameba.lpt.fi/~hataarto/fun , are still available somewhere else?
I'm planning on making a reproduction of artoh's cart for myself because i find it the most complete and detailed diy cart project out there. I got some of the files from
http://www.nesworld.com/funkyflash.php , but even that i still can't figure out how to program the mapper (xilinx cpu) using that codes and i couldn't find any pc software for flashing the cart through the files.If there is anyone able to help me with this one i would be very grateful. Thanks in advance!
Wow thanks for digging this up! I haven't seen this project before, LOTs of good files on that nesworld link.
With all those files included it shouldn't be difficult to port the project over to a current Xilinx CPLD. Although I'm not sure about the programming interface for the rom image, I didn't look at that much but all the source and schematics seem to be there.
You need a JTAG programmer to flash the Xilinx CPLD. I didn't see the files you would need to program the CPLD either (usually .svf) files. But you could easily make them by downloading xilinx webpack for free and recompiling the source, he's even got the project files there as well.
Not sure what your experience level is but IMO you would have to have a fairly significant amount of knowledge about this stuff to consider it DIY. I realize that was his end goal, but with the project in it's current state I wouldn't consider it DIY anymore. It's definitely a good start though, I fully intend to make use of some of these files for the
NESDEV1 dev cart I'm currently working on.
He really does provide most of the files you would need to pick up the project. I would be interested to see any progress you make if you decide to pick it up from where it left off.
Thanks for your help. That's the problem, the fact that my knowledge in programing is quite basic. I'm actually good at electronics especially when it comes to designing and manufacturing but again my knowledge regarding digital stuff is kinda poor (i should have paid more attention to that microcontrollers and CPU Architecture clases
). In this case my only problems are programing the Xilinx and the writing of the software for the cart. I think i'll abandon the idea of reproducing the cart and i'll develop one of my own (with less performances of course) using the data from the schematic. But first i need to understand how the mappers work.
Yes I know about your project.
Damn awesome. It actually came to my attention before finding about the FunkyFlashCart. But it seems to complicated for me and i lack in some certain equipment (the retrozone donor cart and that usb development board.
) If you can point me in some direction were i can learn more about NES development and "how do stuff work" i would be very very thankful. Cheers!
Probably the best resource is
Nesdev wiki. And now that the SOPA strike is over for a while, the list of
fundamental concepts in computer science and digital logic should help.
Asphyx wrote:
But it seems to complicated for me and i lack in some certain equipment (the retrozone donor cart and that usb development board. Smile) If you can point me in some direction were i can learn more about NES development and "how do stuff work" i would be very very thankful. Cheers!
What USB development board are you speaking of? If you're refering to my video that was only an atmega8 some descrete components and solderless breadboard. Less than $10 all together. I started with this serial eeprom programmer
http://xldrx.com/xl/EE-Prog.html and just ripped out all the I2C code and replaced it with a parallel memory interface. All AVR development in done in C.
The retrousb.com board I play around with is only $4.
But yes, there is some financial investment involved but it's really low if you want it to be. You could learn and demo out a LOT for less than $50 assuming you already have some NES carts to investigate.
The wiki is a good reference, but I found it pretty useless when I started the project (less than a year ago). I had a good grasp of digital logic and programming in C and basic computer architecture, but no technical knowledge of the NES. The problem was I was trying to learn the hardware of carts and the NES and most documents are written from a programming/software perspective. Even the simple schematic on the UNROM wiki boggled my mind for weeks. I mostly used Kevtris' nes cart types doc and ROM pinouts to reverse engineer some discrete mappers using a multimeter and drew out the schematics. Then I looked up the datasheets and really figured out how the mappers work on a hardware level.
Once you get to that point and understand what bank switching really is things start to make more sense. At that point you could start playing around and running some demos and such. Then you could invest the $4 in a repropak and reverse engineer that thing to understand how you can get most discrete mappers on one cart easily. Eventually you'll understand enough to dive into MMC1/3 which I'm working on now. Those schematics you linked to are especially helpful and knowing that they were tested and worked is a big bonus.
One thing to get a grasp on early on is the NES memory map and there are good pics in the nes documentation. All items I spoke of are below and were really my bible for the first couple months.
http://nesdev.com/NESDoc.pdf
http://nesdev.com/rom.txt
http://nesdev.com/NES%20ROM%20Pinouts.txt