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 emulation looks for the boot ROM in the current directory #160

Closed
Screwtapello opened this issue Mar 12, 2021 · 1 comment · Fixed by #163
Closed

WonderSwan emulation looks for the boot ROM in the current directory #160

Screwtapello opened this issue Mar 12, 2021 · 1 comment · Fixed by #163
Labels
bug Something isn't working

Comments

@Screwtapello
Copy link
Contributor

Steps to reproduce:

  • download the latest higan nightly
  • confirm that Templates/WonderSwan/boot.rom exists
  • create a new WonderSwan system
  • launch it

Expected results:

  • system is loaded

Actual results:

  • a message box appears, saying "Missing required file: boot.rom Would you like to browse for this file now?"
  • if you browse to the file in question, it saves it to the working directory rather than to Systems/WonderSwan
  • If you manually copy boot.rom into Systems/WonderSwan it still complains about it being missing
@Screwtapello Screwtapello added the bug Something isn't working label Mar 12, 2021
@LukeUsher
Copy link
Contributor

LukeUsher commented Mar 12, 2021

At the time load is called, the location attribute hasn't been set yet (it's set 'after' calling load, which makes sense, you can't set an attribute on a node that hasn't been created yet!), meaning that loading files from within the load() function will not use the correct path.

This is not a problem with the simple UI as each system has it's own interface which specifies a specific load folder: It's only an issue with the generic method used in the higan-style UI.

A potential workaround would be to load firmware at the power() stage, which is what I did with PolyBlast, but I'm not sure that's the best solution.

EDIT: This could be the same issue as #161, because the emulation core would be looking for eeprom.save in the root folder (for the same reason), but saving it in the system directory.

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

Successfully merging a pull request may close this issue.

2 participants