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

nintendont not saving any config changes #25

Open
Pharacelcus opened this issue Feb 9, 2023 · 3 comments
Open

nintendont not saving any config changes #25

Pharacelcus opened this issue Feb 9, 2023 · 3 comments

Comments

@Pharacelcus
Copy link

I'm just trying to have the BBA emulation to stay on.

The settings work as I can play PSO online if I manually boot through nintendont and turn it on but it'd be really nice to have the setting saved so I can just boot it through the RVLoader games list. I even copied the nincfg from another wii where it did save but then it's just disabled as soon as I use RVLoader.

Am I doing something wrong or is this by design?

@progmem
Copy link

progmem commented Oct 23, 2024

Commenting on this since I'll be performing a wifi relocation on my portable with the express purpose of playing PSO.

Nintendont has an additional bit in its configuration to support BBA emulation. It looks like this configuration is passed to Nintendont directly, as there's a process for syncing the config before processing it. The nincfg.bin is only read if this configuration hasn't been set in memory.

RVLoader isn't aware of this bit (the enum skips 19 and even then, it's not exposed in the UI), so this bit can never be set and therefore can't be passed to Nintendont. I'm not familiar with the toolchain required here but this seems like a straightforward-ish weekend project, especially given that the wifi relocation flex I ordered is coming in a few days.

@progmem
Copy link

progmem commented Oct 28, 2024

I started exploring this in a separate fork, testing on an untrimmed Wii with RVLoader installed. This wasn't "too bad":

  • Update the Nintendont configuration being passed to "v9", which includes provisions related to BBA emulation.
  • Update the menu Lua to add in menu options to enable/disable BBA and which network profile to use.
  • Add in the required value retrievals in order to set the BBA emulation bit and the network profile.

This comes with a caveat: from an interface perspective RVLoader and Nintendont play along, but IOS58, used by Nintendont, can be patched during RVLoader installation to disable wifi (enabled by default), which causes Nintendont to misbehave (e.g. in PSO it'll lock up while trying to get online). So, thinking about this, we could:

  • See if we can somehow patch wifi back in when the option is selected to enable BBA emulation.
    • I'm not certain this is entirely possible from a technical perspective, but with the way homebrew is booted today it certainly doesn't appear to be.
  • Coerce Nintendont to load a different IOS instead of IOS58.
    • This would require installing another copy of IOS58 without the no-wifi patches along with modifications to Nintendont to specify the IOS to be used.
    • IOS58 is specified via a static const; I don't see any reason why we would be forced to use a static value here, though a non-static value would mean the compiler can't optimize that function (which might not matter).
    • This also technically means maintaining a version of Nintendont that supports this; that or convince the maintainers that this is a worthwhile item.
  • If there's a way to detect that the no-wifi patch has been applied, simply don't give the user the ability to enable BBA emulation. Hide the configuration option and make sure the values aren't set.

@Pharacelcus
Copy link
Author

this is way above my level but i appreciate the effort, truly makes me happy that someone is looking into this. it's not a deal breaker but it'd be a nice quality of life feature to have. (if possible) thank you for the update!

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

2 participants