Kind of reminds me of the Sorcerer cart repair I had to do. What size EPROM is it Bob?
Yes, I read the Sorceror cart repair post with interest. I have a lot of carts, but I've never seen an original mask ROM go bad, so that was a surprise. Maybe in a few more years. It is actually relatively cheap and simple nowadays to get your own programmer, UV eraser, and EPROMs off eBay, so that stuff has become much easier for the average person to have a go at.
The quick answer to your question is that I used 27C801 EPROMs - those are 8MBit / 1MByte in size. The longer answer goes like this.
For those of you not familiar with the SC-3000, it has a single expansion port which takes plug in games carts a bit like the Sega Master System. The SC-3000 doesn't have any bootstrap code on-board, and only 2KB of SRAM, so in general it can't do anything without a cart plugged in. The cart provides all the game code or (in the case of the Basic cart) the 'operating system' for the computer, plus additional RAM if required. The games carts usually use the on-board 2KB, the Basic carts supply up to 32KB, and the SF-7000 Super Control Station with the disk drive supplies a full 64KB of RAM.
So the SC-3000 memory architecture is very simple. The Z80 can only address 64KB of memory. The bottom 32KB is generally reserved for game ROM code (or Basic OS code), and the upper 32KB is reserved for RAM. The Multicart works by swapping out the bottom 32KB of memory with a different ROM image (all the known game ROMs are 32KB or smaller). So an 8MBit / 1MByte EPROM gives 32 slots of 32KB.
The picture extra_anchovy posted above is from the Mk I Multicart. That was my original proof of concept as I was learning. I took a Yamato game cart, desoldered the original 28 pin mask ROM (16Kb), added a 32 pin socket for the 27C801 EPROM, and used a DIP switch to control the top 5 address lines leaving the Sega to control the bottom 15 lines, giving 32 slots of 32KB. I wrote a detailed tutorial on how that works and how to do it if anyone wants to try making their own here:
http://sc3000-multicart.com/section1.htmThe DIP switch cart worked really well, but I wanted to try building a cart with a boot menu. And I really wanted to get the tape games running on the Multicart. (Cue a lot more breadboard testing). The biggest problem with tape games isn't actually the 2-5 minute load time, it is having to retry 10 times before the bl**dy thing loads correctly! And the Multicart gets around that beautifully.
You can find out more about how the Mk II Multicart works here:
http://sc3000-multicart.com/section3.htmBut in brief it works more or less the same way as the DIP switch based cart except that I use a LS373 8-bit latch to control the top 5 address lines instead of a DIP switch, and the cart has 32KB of RAM on board mapped to $8000 to $FFFF. I also added a second EPROM, so you can have a max of 64 slots (and the LS373 switches between them). There are only about 90-100 SC-3000 game ROMs around, so you can fit most of your favorites on the one cart. And you can also plug AMD 29F040 Flash EEPROMs into the lower socket instead. That halves the capacity as they are only 4MBit, but they are really convenient for quickly swapping games around.
Note - SMS Power has recently been releasing various Korean and Taiwanese dumps which were never distributed for the SC-3000 which can run on the multicart like Xevious, Yie Ar Kung Fu, Circus Charlie, Cabbage Patch Kids, Hyper Sports 2 etc.
So the SC-3000 / SG-1000 game ROMs are trivial to add to the cart, but the tape games require more work. Some are trivial, but some take 3-6 hours to convert. Basically I find the parts of the game code that call the Basic ROM tape load routines and get them to call routines to load the data from the multicart instead. You can see video footage of some of those on sc3000-multicart.com
Here's what the Mk II Multicart PCB looks like. It is plugged into an SC-3000 with the case and keyboard removed - I had to do that for the breadboard testing phase. But the PCB is designed to fit inside a standard cartridge case (with a couple of minor cuts to the case).
