Skip to content

Enhancements

Patrick Mollohan edited this page Sep 6, 2023 · 10 revisions

In the context of this project, enhancements are defined as mods that improve the game but do not change the vision or direction of the original, unmodified game.

Enable FastROM

Download the IPS/BPS patches here!

Cartridges on the SNES came with two different speeds of mask ROMs: 200ns (slower, but cheap) and 120ns (faster, but more expensive). Slower ROMs could only be accessed at a frequency of 2.68MHz; however, games using the faster ROM chips could enable FastROM mode by setting the register $420D = #$01, resulting in a faster 3.58MHz access speed.

There is evidence the game was originally supposed to be FastROM, but was changed to SlowROM before the game shipped. First, the ROM header indicates a ROM mapping of 0x30 (LoROM/FastROM) as opposed to 0x20 (LoROM/SlowROM). Second, the game is written in a way that already sets up everything needed to enable and fully take advantage of FastROM, save for the line that sets $420D = #$00. Thankfully, by simply changing that value to #$01, we can re-enable FastROM, which results in about a 10% decrease in loading times.

Here is the section of code responsible for selecting SlowROM/FastROM:

LDA.B #$00           ; [80852B] [A900    ] Access cycle speed: #$00 = SlowROM (2.68 MHz), #$01 = FastROM (3.58 MHz)
STA.W $420D          ; [80852D] [8D0D42  ] Set access cycle speed to SlowROM 

Value #$00 is loaded into the accumulator and is then stored into register $420D. By changing the code to

LDA.B #$01           ; [80852B] [A901    ] Access cycle speed: #$00 = SlowROM (2.68 MHz), #$01 = FastROM (3.58 MHz)
STA.W $420D          ; [80852D] [8D0D42  ] Set access cycle speed to FastROM 

FastROM is now enabled! You can view the difference this single flipped bit makes by watching this YouTube video where I demonstrate the faster loading times.

The download link for the ROM patches can be found above. If you don't wish to use ROM patches, I've also turned it into Game Genie and Pro Action Replay codes, though they probably will only be useful for emulation; I doubt the codes will do anything useful on real hardware with original, unmodified cartridges. As it turns out, it does, in fact, work on real hardware with an original, unmodified cartridge! It seems most slower ROMs were tolerant (to some degree) to faster access speeds than what they were rated for, but as noted in this thead, it might not be entirely stable over longer periods of time. Tested with a Game Genie over a period of twenty minutes with no issues. I did, however, have to perform a resistor mod to my Game Genie, as it appears early Game Genies were not compatible with such speeds.