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

[Issue]: Softlock on startup on Wii #953

Open
pyorot opened this issue Feb 6, 2025 · 5 comments
Open

[Issue]: Softlock on startup on Wii #953

pyorot opened this issue Feb 6, 2025 · 5 comments

Comments

@pyorot
Copy link

pyorot commented Feb 6, 2025

Describe the bug

Filing this long-standing bug. It seems that with various boot environments, Swiss can softlock on startup, but this behaviour is inconsistent and seemingly depends on some hardware details. I will attach raw logs of conversations where three people reported this, but I don't have hard evidence or leads and can't fully make sense of some of the reports from inexperienced users.

The softlock seems to look as in the screenshot below, notably missing both any UI elements in the main view and a selection highlight in the bottom bar. Swiss accepts no inputs in this state, while the UI clock ticks. It also seems to be consistently avoided by inserting a disc before starting Swiss. I think something's deadlocking in the logic that loads a default device. It might be disc-drive–dependent, and might be affected by the DI-related hardware-register setting done in the boot process.

Steps to reproduce

I will attach the three user discussions here:

DacoTaco.txt
RollPlayStation.txt
Valentino.txt

The DacoTaco one is a fresh Swiss cMIOS installation, starting cmios-based Swiss by holding Y, using both the Swiss's included booter r1788 and Wii Swiss Booter 1.1.

The RollPlayStation one is hard to decipher but includes this example of a file-based Wii Swiss boot (which I believe evidence shows functions identically to WiiGator cMIOS):

also discovered booting with the swiss download boot.dol [Swiss's included booter r1788] from the front SD card also works
[swiss] cmios installed, wii swiss booter, no y hold, on HB channel, no inputs [meaning softlock]
both your cmios and wiigator work the same via wiixplorer [gamecube homebrew swiss.dol launch, which avoids the softlock]

Valentino provides this report, using an older version of Swiss and WiiGator + WiiPower launching setup (the y-hold makes no difference here):
Image

So I would say there is possibly something Wii Swiss Booter 1.1 is doing to exacerbate matters, and possibly something Swiss's included Wii Booter r1788 is doing to ameliorate them. Disc inserted is the one thing that always seems to work tho.

Expected behavior

I ran testing on my own two Wiis as well as witnessing 5 others be tested, using Swiss cMIOS with Wii Swiss Booter 1.1 and no disc inserted, and it always worked. Specifically, all 7 Wiis tested y-hold (no swiss.dol on removable media), and on mine I also tested file-load on the Wii that supports it, both Swiss r1742 and r1788, with OG and Smash Ultimate OEM controllers, with SD Gecko inserted and not inserted. One of the testers tried out a 3rd party controller. Everything worked.

These tests encompassed disc drives manufactured in 2006, 2007, 2008 and 2009.

Bear in mind that I did myself once reproduce the softlock by running resetDI before execFromMem with file-loaded Swiss r1742.

Relevant log output

Add screenshots

Image

@pyorot pyorot added the bug label Feb 6, 2025
@pyorot
Copy link
Author

pyorot commented Feb 17, 2025

we have a working hypothesis, thanks to extrems noticing that reports of this issue typically show the “No WODE found!” message when starting swiss with a disc. we think it is reproducible specifically on disc drives dated 2008/07/14 (according to swiss, which shows “WODE” under “drive interface”, or syscheck), which swiss mistakes for WODE and then softlocks doing a WODE-related check when no disc is inserted (and gives the above message when a disc is inserted)

all 7 wiis i tested did not have this disc drive date and worked without problem

@DacoTaco just a ping to report your affected wii’s disc drive date here

@DacoTaco
Copy link

we have a working hypothesis, thanks to extrems noticing that reports of this issue typically show the “No WODE found!” message when starting swiss with a disc. we think it is reproducible specifically on disc drives dated 2008/07/14 (according to swiss, which shows “WODE” under “drive interface”, or syscheck), which swiss mistakes for WODE and then softlocks doing a WODE-related check when no disc is inserted (and gives the above message when a disc is inserted)

all 7 wiis i tested did not have this disc drive date and worked without problem

@DacoTaco just a ping to report your affected wii’s disc drive date here

the date is indeed the date of my wii's drive.

20:21:26 : reading dvd...
20:21:26 : rev: 0x0
20:21:26 : dev_code: 0x2
20:21:26 : rel_ate: 0x20080714

@Extrems
Copy link
Collaborator

Extrems commented Feb 19, 2025

Potentially fixed in f764b0e (r1816).

@pyorot
Copy link
Author

pyorot commented Feb 22, 2025

swiss r1816 was tested by DacoTaco and it started fine with disc inserted and with no disc inserted. he had to compile it into the cmios tho because his wii suffers from the stale memory glitch. so there are wiis that have the wode disc drive date and stale memory problem

anyway, of the 3 reporting users, 2/3 users confirmed they had the wode disc drive date and 2/3 confirmed the bug is fixed in r1816 so i’m happy for this to be closed, except ofc it hasn’t been tested for users who are actually using a wode

@DacoTaco
Copy link

DacoTaco commented Feb 22, 2025

i'd say leave it open to also test a WODE and improve the WODE detection code if needed (which i too have questions about)

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