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

Include Not64's or Fix94_Wii64's included "hidden" game-autoboot functionality #45

Open
NintendoManiac64 opened this issue Aug 3, 2021 · 16 comments

Comments

@NintendoManiac64
Copy link

NintendoManiac64 commented Aug 3, 2021

EDIT: As mentioned later in this issue tracker, Not64's autoboot functionality seems to AFAICT be better in every way. So ideally using Not64's method of autoboot would be preferred, though something is better than nothing I guess...

________ Original post ________

Turns out that Fix94's fork of Wii64, much like Not64, includes a game-autoboot function. The problem? Not64 documents how to use theirs while Fix94_Wii64 doesn't.

To use it in Fix94_Wii64, you need to add additional text to meta.xml located between "</long_description>" and "<ahb_access/>" so that it looks something like the following:

  </long_description>
  <arguments>
    <arg>sd:/wii64/roms</arg>
    <arg>game.z64</arg>
  </arguments>
  <ahb_access/>
</app>

...and it'll "just work" and automatically load the file "game.z64" located in sd:/wii64/roms

And you can simply change out the text "game.z64" for whatever game you want to load.

 

It may be worth mentioning that Not64 also has an undocumented meta.xml autoboot argument for loading a specific button slot:

<arg>LoadButtonSlot = #</arg>

If you replace # with 0 1 2 or 3 it then automatically load one of Not64's four saved button configs, but it can bug out on newer versions unless you only stick with the first button slot or use the old 2012 versions of Not64 (more info).

@saulfabregwiivc
Copy link
Contributor

Also have the same issues in the r16-02-2018 and r19-11-2020 of Wii64 1.2 (both glide / glN64 and Rice GFX versions) and lacks all of the fixes and Wiiflow compatibility made by @FIX94.

Can you fix those issues @emukidid?

Thanks a lot!!!

@NintendoManiac64
Copy link
Author

NintendoManiac64 commented Aug 5, 2021

I just found out that the game-autoboot function actually already exists, it's just completely undocumented, so I'm going to majorly edit this to instead be about documenting the included "hidden" game-autoboot functionality.

@NintendoManiac64 NintendoManiac64 changed the title Directly load a game from the HBC like in Not64? Document the included "hidden" game-autoboot functionality Aug 5, 2021
@saulfabregwiivc
Copy link
Contributor

okay i'm going to try this one later. Thanks!

@NintendoManiac64
Copy link
Author

NintendoManiac64 commented Aug 6, 2021

FYI I just want to mention that AFAICT the mentioned autoboot arguments are the only ones that seem to be present - trying add a "LoadButtonSlot = #" argument like is used by Not64 does not work.

@saulfabregwiivc
Copy link
Contributor

@NintendoManiac64 Tried the arguments with latest version of Wii64 and they don't work.
What Wii64 build are you using? because these arguments only work using @FIX94's build of Wii64. (http://github.com/FIX94/Wii64).
Hope @emukidid fix that in a new release

@NintendoManiac64
Copy link
Author

Oh crap! Since I was using Wii64 Rice, I thought I was using emukidid's build since FIX94's build doesn't say Rice anywhere in the release description nor on the code page description (not including files in the source code named "rice")

...yet it does actually include a Rice GFX version if you download the actual release ZIP.

That's... not exactly the best distinction, no?

@NintendoManiac64 NintendoManiac64 changed the title Document the included "hidden" game-autoboot functionality Include Fix94_Wii64's included "hidden" game-autoboot functionality Aug 7, 2021
@saulfabregwiivc
Copy link
Contributor

so yeah.
@emukidid , are you going to add "game-autoboot" functionality in a new version of Wii64?

@emukidid
Copy link
Owner

The question is which to add, Wii64 already has parsing of parameters via "command line", Not64 has an extension of this to add things like SMB settings and a "rompath". The FIX94 changes bypassed this handling by assuming (hacky) that if you've passed in 2 parameters that they're the ROM directory path [arg 0] + ROM file name [arg 1].

This made it so that it could be used as a Wiiflow plugin but then the other functionality was effectively broken. I'm leaning towards refactoring it so that it can support both as a Wiiflow plugin + the remainder of the parameters that we already support. If Wiiflow plugins are a thing of the past then I'll just put it as a single rompath just like Not64 has.

@NintendoManiac64
Copy link
Author

NintendoManiac64 commented Aug 11, 2021

If anything, it's my impression that use of the Wiiflow plugins are actually gaining in popularity (though, as someone that doesn't use Wiiflow, I could be completely wrong on this).

 

However, there may be a better solution - Not64 itself actually has a Wiiflow plugin, and it's my impression that the aforementioned plugin uses Not64's existing meta.xml arguments (again, I can't say for absolute sure because I do not use Wiiflow).

This is the according thread where I came to my conclusion regarding the Not64 Wiiflow plugin:
https://gbatemp.net/threads/not64-in-wiiflow-not-launching-n64-roms.531756

Do note there may (or may not) be a bug in the Not64 Wiiflow plugin with returning to the cover view as mentioned in this post, but it's also possible to just be the fault of Not64 instead:
https://gbatemp.net/threads/not64-in-wiiflow-not-launching-n64-roms.531756/#post-9235091

(also note that hat the newest Not64 uses "FAT:/" rather than "USB:/" for USB paths)

 

Interestingly in that same thread, there apparently used to be a menu option for using a real N64 controller:
https://gbatemp.net/threads/not64-in-wiiflow-not-launching-n64-roms.531756/#post-9236311
https://gbatemp.net/threads/not64-in-wiiflow-not-launching-n64-roms.531756/page-2#post-9236940

...which also made me realize, does Wii64 even have support for the official GameCube USB adapter?

 

EDIT: I did remember one key thing regarding Not64's autoboot vs Wii64's - on Wii64 the game loads and starts running automatically without the player needing to press any button, but on Not64 the game only loads and does not start running automatically - it requires the player to press the A button twice before you actually start running the game proper.

So, if possible, the ideal solution may be to use Not64's autoboot arguments but use Wii64's method of true game autobooting that does not require player intervention.

@saulfabregwiivc
Copy link
Contributor

saulfabregwiivc commented Aug 13, 2021

@NintendoManiac64 for make the game start automatically when in Not64, we have to add the "SkipMenu=1" (without any quotes) option/setting in the arguments on meta.xml, as shown:
<arguments>
<arg>SkipMenu=1</arg>
<arg>rompath="root:/path/to/rom.z64"</arg>
</arguments>
@emukidid , can you tell us what is the "hidden" and "undocumented" autoboot-game parameters/arguments of your actual builds of Wii64, how it works and how to apply these arguments in meta.xml file of the emu please?

@NintendoManiac64
Copy link
Author

NintendoManiac64 commented Aug 15, 2021

@NintendoManiac64 make the game start automatically when in Not64, we have to add the "SkipMenu=1" (without any quotes) option/setting in the arguments on meta.xml, as shown:
<arg>SkipMenu=1</arg>

Interestingly, this also works if added to Not64's "settings.cfg" file (specifically the "SkipMenu=1" part) even when the meta.xml file it deleted altogether.

But a bigger problem is that using this seems to result in Wii remote attachments (classic controller and/or nunchuck) not being seen when in-game and, if you remove the according attachment without returning to the emulator menu, the Wii remote by itself will function correctly - behavior that you can recreate manually if you launch a game without autoboot using only a Wii remote and then connect an attachment without returning to the emulator menu.

This is the exact same problem that WiiSX RX v2.5 has when using autoboot, but the dev of that emulator seems to be uninterested in fixing it and instead suggests using a Wii U pro controller... but I do not own a Wii U pro controller.

For reference, Fix94's Wii64 does not exhibit such a behavior when using its autoboot functionality despite using the same meta.xml arguments as WiiSX RX. This implies to me that Fix94's Wii64 may have intentionally modified the behavior to fix this very issue.

 

EDIT: At least Not64, unlike WiiSX RX, did highlight "Resume Game" by default when you access the emulator menu after launching a game via the "SkipMenu=1" argument (WiiSX RX by comparison would always instead highlight "Load ISO" by default except if a game is already running that was not launched by autoboot).

@saulfabregwiivc
Copy link
Contributor

Hey @emukidid, can you tell us what is the "hidden" and "undocumented" autoboot-game parameters/arguments of your actual builds of Wii64, how it works and how to apply these arguments in meta.xml file of the emu please?
I'm not sure about the usage of the "autoboot ROM feature" in your official builds of Wii64.

@NintendoManiac64
Copy link
Author

OK yeah, it'd probably be better to use Not64's style of autoboot because the "MiniMenu=0" argument doesn't work if using the style of autoboot found in FIX94's Wii64.

Also the newest 2021-08-17 version of Not64 not only fixed the issue with classic controllers not working when using the "SkipMenu" argument, but it now straight-up supports hot-swapping wii remote extensions.

@NintendoManiac64
Copy link
Author

Just discovered a bug with FIX94's Wii64 implementation of autoboot where, if you do use autoboot to load a rom and then return to the emulator menu to load a different rom, it will instead keep loading the same rom that you autoboot-ed.

So once again, it's looking like Not64's implementation of autoboot is the better way to go.

@saulfabregwiivc
Copy link
Contributor

saulfabregwiivc commented Nov 12, 2021

Okay @emukidid, i've made a pull request for add @FIX94's code for make Wii64 compatible with Wiiflow.
Here #71
Hope you can check the code, test it and compile that in a build for test it.

Just discovered a bug with FIX94's Wii64 implementation of autoboot where, if you do use autoboot to load a rom and then return to the emulator menu to load a different rom, it will instead keep loading the same rom that you autoboot-ed.

So once again, it's looking like Not64's implementation of autoboot is the better way to go.

@NintendoManiac64
Just don't use arguments in it, and you can choose & run your game ROMs in it normally.

@NintendoManiac64
Copy link
Author

NintendoManiac64 commented Nov 12, 2021

Not going to lie, I'm kind of disappointed that you @saulfabregwiivc invested time into implementing FIX94_Wii64's autoboot rather than Not64's autoboot since AFAICT Not64's autoboot is just straight-up superior.

If this truly will be the route that the elusive future release of Wii64 will go, then I guess I'll have to bow out of keeping my hopes up and just stick to Not64 then and make due with not using autoboot for the few games I need to use Rice video for instead.

@NintendoManiac64 NintendoManiac64 changed the title Include Fix94_Wii64's included "hidden" game-autoboot functionality Include Not64's or Fix94_Wii64's included "hidden" game-autoboot functionality Nov 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants