Hi, I'm writing this as I'm experiencing issues with playing the japanese title, "Pocket Monsters Crystal Version". It doesn't seem to work correctly, because I'm experiencing glitches in relation to saving the data with this game.
For example, if you start the game as a girl, save the game, and restart, you'll find the following:
- You've become a boy (but blue)
- The Mystery Gift option is enabled in the main menu, which is usually unlocked much later in the game.
This is just a couple of the issues this game has on the flashcart, there's more but these are the easiest to notice right out of the gate.
Now, I've looked into the issue, so here's a bit of technical detail: Japanese Pokemon Crystal is the only game that uses an MBC30 mapper. This is reported in the cartridge header as an MBC3+TIMER+RAM+BATTERY (just like any other pokemon game), but, with an SRAM size value of 05h. This mapper works the same as an MBC3, except the ram bank number can range from 0 to 7, instead of 0 to 3. An extra pin is connected from the mapper to the SRAM on the cartridge's board as well. Additionally, the ROM bank number can range from 0 to 255, instead of 0 to 127 (Source, chapter 11, page 44), and while no released game uses this, some homebrew games do.
Currently, the EZFlash Junior ignores this bit. It correctly creates a 64KB save file on the SD card, but when the game accesses the save file, only banks 0 to 3 can be accessed. Accessing banks 4 through 7 will access the data in banks 0 to 3, which can lead to corruption.
Considering how other mappers such as the MBC5 are working on this flashcart and support much bigger ROM and SRAM sizes, I think it should be possible to support this game properly.
Can this game be fixed?
For example, if you start the game as a girl, save the game, and restart, you'll find the following:
- You've become a boy (but blue)
- The Mystery Gift option is enabled in the main menu, which is usually unlocked much later in the game.
This is just a couple of the issues this game has on the flashcart, there's more but these are the easiest to notice right out of the gate.
Now, I've looked into the issue, so here's a bit of technical detail: Japanese Pokemon Crystal is the only game that uses an MBC30 mapper. This is reported in the cartridge header as an MBC3+TIMER+RAM+BATTERY (just like any other pokemon game), but, with an SRAM size value of 05h. This mapper works the same as an MBC3, except the ram bank number can range from 0 to 7, instead of 0 to 3. An extra pin is connected from the mapper to the SRAM on the cartridge's board as well. Additionally, the ROM bank number can range from 0 to 255, instead of 0 to 127 (Source, chapter 11, page 44), and while no released game uses this, some homebrew games do.
Currently, the EZFlash Junior ignores this bit. It correctly creates a 64KB save file on the SD card, but when the game accesses the save file, only banks 0 to 3 can be accessed. Accessing banks 4 through 7 will access the data in banks 0 to 3, which can lead to corruption.
Considering how other mappers such as the MBC5 are working on this flashcart and support much bigger ROM and SRAM sizes, I think it should be possible to support this game properly.
Can this game be fixed?
Last edited by pfero,