Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Save-related issues on EZ Flash Omega & others. #3

Open
metroid-maniac opened this issue Dec 3, 2022 · 0 comments
Open

Save-related issues on EZ Flash Omega & others. #3

metroid-maniac opened this issue Dec 3, 2022 · 0 comments

Comments

@metroid-maniac
Copy link

This translation does not work on an EZ Flash Omega or an EZ Flash Omega Definitive Edition flashcart. Presumably, it will not work on an Everdrive GBA either. The translated graphics are corrupt, and all translated text is replaced with the letter "V".

The cause of the issue is as follows. The base game uses a 16MB ROM with EEPROM saving. The game communicates with the EEPROM by writing to the WS2 address 0x0D000000, which mirrors the WS0 ROM address of 0x09000000. Since the extra assets in this patch bring the size of the game over 16MB, addresses at 0x09000000 and above are containing game data. The EZ Flash is emulating EEPROM at these addresses, so the ROM data cannot be accessed.

A solution for this issue is to patch the game to use SRAM saving with GBATA and then to run the game with SRAM mode set on the EZ Flash. This reenables access to the full 32MB of ROM address space while allowing the game to save. Unfortunately this does not solve issue #1 as TempGBA does not allow setting the save type manually, only autodetection by searching for magic strings in the ROM.

This issue does not occur on mGBA. This emulator is inaccurate in that it detects EEPROM or ROM access depending on whether access is done in WS0 or WS2 regions of memory, regardless of the fact a real cartridge cannot detect which mirror is used. This issue also does not occur on a Supercard flashcart, which requires SRAM patching for most games because it lacks save chip emulation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant