- Making an F-Zero Deluxe Cartridge (SNES Cartridge ROM swap)
- 05 Jan 2025 12:24:30 pm
- Last edited by Botboy3000 on 10 Jan 2025 04:39:24 pm; edited 1 time in total
Hello, Cemetech! Long time, no see
I'm working on a project involving upgrading/patching a SNES cartridge. Specifically F-Zero. Early last year (I think) a patch for F-Zero was released that mimicked the version released only in Japan, and released only on SatellaView. This means that no physical cartridges of this version actually exist, but I thought it'd be cool to make one. You can get the patch here.
So far, I've had no luck. I've been folowing this guide for how to make a SNES cartridge. I'm using the M27C801 UV EPROM chip as my replacement. I did everything in the guide to fix the slight pin incompatibility between the old and new ROM chip (swap some sections in the ROM and swap two of the pins with bodge wires) but still no luck. My patched ROM's checksum is good, it was burned and verified by a real EPROM burner, and I've checked all the solder joints. I'm beginning to run out of ideas.
One lead I have is that the original F-Zero is 4Mbit, and the patched F-Zero is 8Mbit. And it seems that the F-Zero cartridge PCB (SHVC-1A1B-05) is a bit strange. The description of the LoROM decoding circuitry in that guide doesn't match what the F-Zero PCB does. Specifically, the cartridge pin A15 is simply unused. The guide seems to suggest that the only time that's the case is with a LoROM board with no SRAM, but of course, F-Zero does have SRAM. BA7 is similarly unused, but that is less unusual I think. At first I thought this might mean that the F-Zero board is incompatible with ROMs above 4Mbit, but after I mapped out the connections and thought about it a bit more, I don't think this is the case. Here is my mapping with a multimeter of the connections in the decoding circuitry:
Right now what I'm going to do is desolder my EPROM and resolder on the SNS-FZ-0 ROM just to make sure I haven't zapped anything with static and I'm banging my head against the wall for nothing.
Any suggestions on something I'm missing here would be very welcome. Thank you all!
EDIT: With the original ROM, the cartridge still works, so that's good. I did have to clean the contacts though. Could this just be a case of "Botboy was silly not to clean the cartridge pads?" Stay tuned
EDIT 2: Well, whaddaya know? It booted right up. There is just a slight snag, and that is that the ROM header tells the SNES that it has 16K of SRAM when it actually has only 2K, so that makes for some fun save memory corruption. It should be easy enough to adjust the ROM header to correct for this and then recalculate the checksum. But I guess the hardware just works now! Hopefully F-Zero Deluxe as it's called can operate on just 2K of RAM. I'll probably make sure of that first. Otherwise I may have to figure out how to stick 16K of RAM in there. At that point it's probably worth it to run some custom PCBs. I'll update here as I go though.
I'm working on a project involving upgrading/patching a SNES cartridge. Specifically F-Zero. Early last year (I think) a patch for F-Zero was released that mimicked the version released only in Japan, and released only on SatellaView. This means that no physical cartridges of this version actually exist, but I thought it'd be cool to make one. You can get the patch here.
So far, I've had no luck. I've been folowing this guide for how to make a SNES cartridge. I'm using the M27C801 UV EPROM chip as my replacement. I did everything in the guide to fix the slight pin incompatibility between the old and new ROM chip (swap some sections in the ROM and swap two of the pins with bodge wires) but still no luck. My patched ROM's checksum is good, it was burned and verified by a real EPROM burner, and I've checked all the solder joints. I'm beginning to run out of ideas.
One lead I have is that the original F-Zero is 4Mbit, and the patched F-Zero is 8Mbit. And it seems that the F-Zero cartridge PCB (SHVC-1A1B-05) is a bit strange. The description of the LoROM decoding circuitry in that guide doesn't match what the F-Zero PCB does. Specifically, the cartridge pin A15 is simply unused. The guide seems to suggest that the only time that's the case is with a LoROM board with no SRAM, but of course, F-Zero does have SRAM. BA7 is similarly unused, but that is less unusual I think. At first I thought this might mean that the F-Zero board is incompatible with ROMs above 4Mbit, but after I mapped out the connections and thought about it a bit more, I don't think this is the case. Here is my mapping with a multimeter of the connections in the decoding circuitry:
Right now what I'm going to do is desolder my EPROM and resolder on the SNS-FZ-0 ROM just to make sure I haven't zapped anything with static and I'm banging my head against the wall for nothing.
Any suggestions on something I'm missing here would be very welcome. Thank you all!
EDIT: With the original ROM, the cartridge still works, so that's good. I did have to clean the contacts though. Could this just be a case of "Botboy was silly not to clean the cartridge pads?" Stay tuned
EDIT 2: Well, whaddaya know? It booted right up. There is just a slight snag, and that is that the ROM header tells the SNES that it has 16K of SRAM when it actually has only 2K, so that makes for some fun save memory corruption. It should be easy enough to adjust the ROM header to correct for this and then recalculate the checksum. But I guess the hardware just works now! Hopefully F-Zero Deluxe as it's called can operate on just 2K of RAM. I'll probably make sure of that first. Otherwise I may have to figure out how to stick 16K of RAM in there. At that point it's probably worth it to run some custom PCBs. I'll update here as I go though.