DacoTaco / priiloader

A Wii homebrew application that can prevent and fix some user level bricks
GNU General Public License v2.0
544 stars 101 forks source link

Error autobooting to System Menu with IOS249 (d2x cIOS) #351

Closed GabubuAvailable closed 3 months ago

GabubuAvailable commented 1 year ago

Describe the bug When I set to use IOS249 for System Menu, which is a d2x cIOS, then try to load it from Priiloader, I manage to get the following error message on screen: see the screenshots

To Reproduce Steps to reproduce the behavior:

  1. Open Priiloader
  2. Go to settings then disable the Use System Menu IOS and set the IOS to use for SM to 249
  3. Save the settings then go back to the main menu
  4. Select System Menu and "voila" error

Version 0.10.0

Expected behavior Booting to System Menu without any issue.

Screenshots Error showing on screen: Error

Settings screen (just the bottom page): image

Additional context The log: prii.log

DacoTaco commented 1 year ago

does that cios have ES_Identify(DIVerify) patched? the ES_Identify call failed, which is required if you want to start SM with an IOS besides the what is loaded when priiloader start.

could you try any other ios for a second?

GabubuAvailable commented 1 year ago

does that cios have ES_Identify(DIVerify) patched? the ES_Identify call failed, which is required if you want to start SM with an IOS besides the what is loaded when priiloader start.

I am not sure exactly how to check that. But I can say that it worked when I used Priiloader 0.9.1.

could you try any other ios for a second?

cIOS 249, 250 and 251, all resulting to the same error

DacoTaco commented 1 year ago

with any other ios, i meant any not cios ios :)

GabubuAvailable commented 1 year ago

It happens with every IOS I tried. Except for Stub IOS' where it actually tells me it's a Stub

I also forgot to send my SysCheck (if you are interested): SysCheck.csv

DacoTaco commented 1 year ago

i'll have to test this on my own wii later. this used to work though...

Senseless-Creature commented 1 year ago

Try to run SM with IOS60/70/80 😉

DacoTaco commented 1 year ago

huh, thats odd. when run from HBC (just the dol, not installed) it works, but when installed it doesn't. i will have to dig deeper into this...

GabubuAvailable commented 1 year ago

Try to run SM with IOS60/70/80 😉

Those works. But I don't want to use them lol

GabubuAvailable commented 1 year ago

huh, thats odd. when run from HBC (just the dol, not installed) it works, but when installed it doesn't. i will have to dig deeper into this...

Take your time! No need to rush :)

DacoTaco commented 1 year ago

Those works. But I don't want to use them lol

Thats not what you said earlier ... :)

It happens with every IOS I tried. Except for Stub IOS' where it actually tells me it's a Stub

anyway, i need to do some testing and stuff and i'll see where the problem lies

GabubuAvailable commented 1 year ago

Thats not what you said earlier ... :)

To be honest, I tested by randomly choosing an IOS, not all. Sorry ;-;

Zurdonx commented 1 year ago

I can confirm that this ES_DiVerify problem is also happening on Wii U (vWii). I'm unable to launch the System Menu using any cIOS (d2x). Also, when I selected IOS80, it first gave me a distorted "System Files are Corrupted" error, but when I tried again it worked.

DacoTaco commented 1 year ago

ye, that distorted message is part of the ES_DiVerify call not working/being processed correctly.

MasterKelvinVIP commented 9 months ago

Hey is there any update to this? Would really like to install Priiloader onto my vWii!

TheTechRobo commented 9 months ago

You can, can't you? You just can't select any cIOS to boot from in Priiloader's settings.

MasterKelvinVIP commented 9 months ago

Well, it is installed but I would like to boot into a specific cIOS to get fakemote (d2x) up and running. Unless there is another way to get it running? Genuinely unsure

DacoTaco commented 7 months ago

i had found some possible fixes (restarting es when patching & patching fakesign back in which is required because we changed the SM TMD) but other issues arose which sucks ass -_-

DacoTaco commented 7 months ago

ok, so to explain this to those who understand : this issue exists in 2 parts. one part is priiloader, which should also patch fakesign when doing an ES_Identify call as we altered the TMD on installation. this should fix the corruption message in System menu people are getting.

however, there is a second part in libogc. when IOS_Reload is called, it sometimes happens IOS hasn't fully init yet by the time it tries to reinit the IOS subsystems (ES) and therefor libogc is in a state where it can't do any ES calls until IOS is done loading fully and it opens /dev/es again.

normally, once libogc detects IPC is back online, it should be good to go but very very rarely you get a race condition in which libogc thinks IPC is up and running but in reality it is not, and /dev/es is not running either.

i've made a fix by trying to re-init the subsystems 3 times, and confirmed it working. However, we are still discussing how we will integrate the fix and leave the code in a better state than it is right now because this is a nasty fix for a nasty bug tbh

current fix : https://github.com/DacoTaco/libogc/commit/16649297447b7a3e5f25faeabb842ac807329295.

DacoTaco commented 3 months ago

im closing this as the fix was included in libogc's 2.8.0 release, making both issues fixed once a new priiloader release is made :)