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

WonderSwan EEPROM is erased at startup #161

Open
Screwtapello opened this issue Mar 12, 2021 · 0 comments
Open

WonderSwan EEPROM is erased at startup #161

Screwtapello opened this issue Mar 12, 2021 · 0 comments
Labels
bug Something isn't working

Comments

@Screwtapello
Copy link
Contributor

The WonderSwan contains a small EEPROM that stores things like the owner's name, birthday, blood type, etc. This information is available to games to personalise them for the player. Games can also communicate with each other by saving data to the EEPROM; the game Super Robot Taisen Compact 2 was published in three parts, and completing one part lets you save your progress to the console's EEPROM so you can continue in the next part.

However, it seems that every time higan loads a WonderSwan system, the EEPROM is freshly initialised. You can hold Start at power-on to enter the settings menu and configure it, then power-cycle to load a game and the changes will take effect, you can even power-off, load a different game and power-on, but once you unload the system, or close higan, the next time you boot it up the EEPROM is reset.

The save.eeprom file exists on disk, and the modification time is set, so apparently higan is writing it out. However, is it writing the original values or the modified values? Is it writing to the correct place but reading from an incorrect place?

More research is required.

@Screwtapello Screwtapello added the bug Something isn't working label Mar 12, 2021
Screwtapello added a commit to Screwtapello/higan that referenced this issue Mar 13, 2021
The WonderSwan system(s) include a BIOS ROM and EEPROM data. According to the
higan model, this data should be stored in the folder representing a given
system. Previously, higan would try to load those files along with everything
else in the system folder, however at the time System::load() is called we
haven't associated a filesystem path with the system - that's part of the whole
loading process.

Instead, we load that system data at power-on, after the loading process has
sorted out all the filesystem paths we'd need.

Hat tip to @LukeUsher for the suggestion.

Fixes higan-emu#160, higan-emu#161.
Screwtapello added a commit to Screwtapello/higan that referenced this issue Mar 13, 2021
The WonderSwan system(s) include a BIOS ROM and EEPROM data. According to the
higan model, this data should be stored in the folder representing a given
system. Previously, higan would try to load those files along with everything
else in the system folder, however at the time System::load() is called we
haven't associated a filesystem path with the system - that's part of the whole
loading process.

Instead, we load that system data at power-on, after the loading process has
sorted out all the filesystem paths we'd need. This matches what the GBA and
ColecoVision cores do.

Hat tip to @LukeUsher for the suggestion.

Fixes higan-emu#160, higan-emu#161.
Screwtapello added a commit that referenced this issue Mar 13, 2021
The WonderSwan system(s) include a BIOS ROM and EEPROM data. According to the
higan model, this data should be stored in the folder representing a given
system. Previously, higan would try to load those files along with everything
else in the system folder, however at the time System::load() is called we
haven't associated a filesystem path with the system - that's part of the whole
loading process.

Instead, we load that system data at power-on, after the loading process has
sorted out all the filesystem paths we'd need. This matches what the GBA and
ColecoVision cores do.

Hat tip to @LukeUsher for the suggestion.

Fixes #160, #161.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant