I've been reading up on producing repro cards and one practical question doesn't seem to be answered in the wealth of information I did find is why only a very small selection of EPROMs is used. Unless you don't mind creating a wire jungle, using the 32-mbit 29F032 in TSOP package on a maskrom adapter pcb seems to be the way to go. It seems that this reproduction business has driven up the prices of these specific EPROMs horrendously (as seems to happen with all retro-gaming related items!). Now I get that there's a lot of repro-related information available on this EPROM. Preproduced adapter boards at less than a dollar a piece are available. They're known to be compatible with a wide range of cheap programmers. But they are crazy expensive! You'll have a very hard time finding them for less that $6 a piece. So, why does nobody seem to use another, cheaper, EPROM type such as the M27C322 that can easily be found for less than $1.50/pc. Are they somehow incompatible or does nobody feel like creating adapter boards for them?
The short answer is that the 29F032 is just about perfect for the job - it works from 5V, has an 8 bit data bus, can hold 4MB (I.E. as big as the SNES mask ROMS) and is available in a TSOP package so that you can make an adapter board that will fit in the mask ROM footprint on the board. Most other devices have one or more drawbacks - for example, that EPROM you mentioned has a 16 bit bus, so you need to put external multiplexers on the adapter board to use it - not a huge problem, but it's added complexity. It's also in a standard 0.1" CERDIP, so it needs a much bigger and more expensive PCB to carry it, and because there were multiple layouts for SNES carts you might need to make multiple versions of the adapter board to work with different base PCBs. There are other 8 bit wide flashes, but they tend to have 3.3V power and I/O, so you need extra interface circuitry. Once you get to that point, you might as well bite the bullet and just design a whole new board.
Thanks, that clears things up. There's no point in using anything other than 5V devices because you would need level shifting on way too many lines. That, plus the relatively large size of 32mbit on the small 8-bit bus rules out pretty much all different parallel eproms. So one more (long) shot before admitting defeat: what about serial eproms? I'm new to all kinds of persistent memory, but I suppose you need a small mcu for the i2c/spi part and some mux/demuxing for the data and address lines. And probably you'd still be stacking chips to reach 32-mbit. Then again, the technology is much more modern, i.e. available and likely cheap. Any thoughts?
SPI flash is great if you are reading large blocks of data at once - but the smaller the blocks you read, the larger the overhead involved in starting each read gets. Since the SNES only reads 8 bits at a time and each access may be at an address that's completely unrelated to the previous one I don't think it's going to be fast enough. If we look at this chip (which is a typical fastish 32mbit SPI flash): http://www.issi.com/WW/pdf/25CQ032.pdf Then you can see that the fastest read mode is FRQUI (fast read with quad I/O - page 26 of the datasheet) - once you set up the mode, it takes 14 clocks to strobe in the address, set up the array and return the first byte (which will be the only byte in this application). It also specifies a maximum clock of 80MHz in fast read mode using dual or quad I/O - so one clock is 12.5nS, and the entire cycle takes 175nS + overhead (reading the address, setting up CE#, etc.). As the access time for fastROM chips on SNES cards is 120nS, we are clearly not going to be able to hit that - slowROM is 200nS, so that's not absolutely impossible, but IMO it would be very hard to do everything that's needed in 25nS, even using a fast FPGA.