Closed Alexroseajr closed 4 months ago
here's a video of the phenomenon along with my entire settings menu https://youtu.be/F3h9D2Ck4Ag
Here's an example of the flow when it works (with the cache reload)
Welcome to WiiFlow WFL 5.5.4-1!
This is the debug output.
WiiU
vWii Mode
AHBPROT disabled = yes
Found WiiFlow Save
Loading IOS Settings from wiiflow save
Using SD Only Settings from wiiflow save
AHBPROT disabled after IOS Reload: yes
Now using D2X IOS249[56] v11
FAT Partition at sd: mounted.
Wiiflow boot.dol Location: sd:/apps/wiiflow
Data Directory: sd:/wiiflow
Setting Wii games partition to: 0
Wii Games Directory: %s:/wbfs
GameCube Games Directory: %s:/games
Nintendont found
emunand = sd:/vwiinands/default
savesnand = sd:/vwiinands/default
Running sound thread
Loading cIOS map
Found d2x base 56 in slot 249
Found d2x base 57 in slot 250
Found d2x base 58 in slot 251
ListGenerator: fileNameSkipPattern=((dis[ck]|tape|side|track)[ _-]([b-l][^a-z]|0*[2-9]|0*[1-9][0-9]))|(^disc2[.]iso$)|(^neogeo[.]zip$)|(^funboot[.]rom$)|(^(ecs|exec|grom)[.]bin$)
Bootup completed!
Creating Gamelist
Adding wii list
Games found: 68
Displaying covers
Creating Gamelist
Adding wii list
Games found: 68
cachepath=sd:/wiiflow/cache
nameorid=RUUE01
wfcpath=sd:/wiiflow/cache/RUUE01.wfc
//^ the above then loops 67 more times, no issues there]
Displaying covers
Update Play log
Launching game SOUE01
Game ID SOUE01 requested IOS 56.
User selected 0
cIOS slot 249 chosen.
Return to channel DWFA using d2x succeeded.
Cleanup Coverflow
Stopping sound thread
Stopped sound thread
MEM1_freesize(): 8339440
MEM2_freesize(): 42516224
and here's when it breaks:
Welcome to WiiFlow WFL 5.5.4-1!
This is the debug output.
WiiU
vWii Mode
AHBPROT disabled = yes
Found WiiFlow Save
Loading IOS Settings from wiiflow save
Using SD Only Settings from wiiflow save
AHBPROT disabled after IOS Reload: yes
Now using D2X IOS249[56] v11
FAT Partition at sd: mounted.
Wiiflow boot.dol Location: sd:/apps/wiiflow
Data Directory: sd:/wiiflow
Setting Wii games partition to: 0
Wii Games Directory: %s:/wbfs
GameCube Games Directory: %s:/games
Nintendont found
emunand = sd:/vwiinands/default
savesnand = sd:/vwiinands/default
Running sound thread
Loading cIOS map
Found d2x base 56 in slot 249
Found d2x base 57 in slot 250
Found d2x base 58 in slot 251
ListGenerator: fileNameSkipPattern=((dis[ck]|tape|side|track)[ _-]([b-l][^a-z]|0*[2-9]|0*[1-9][0-9]))|(^disc2[.]iso$)|(^neogeo[.]zip$)|(^funboot[.]rom$)|(^(ecs|exec|grom)[.]bin$)
Bootup completed!
Creating Gamelist
Adding wii list
Games found: 68
Displaying covers
Update Play log
Launching game SOUE01
Game ID SOUE01 requested IOS 56.
User selected 0
cIOS slot 249 chosen.
Return to channel DWFA using d2x succeeded.
Cleanup Coverflow
Stopping sound thread
Stopped sound thread
MEM1_freesize(): 8413168
MEM2_freesize(): 42516224
Nothing jumps out at me here. Could it potentially be that the first time the app boots the system has some kind of hook set up that's breaking everything, and when reloading cache it fixes that? I have no idea what the problem is
After reading the codebase I did some more tests to see what reloading cache actually does. I came to the conclusion it sets m_refreshGameList to true and sets the bool "update_cache" to true in the wii and general domain. So I looked for other places where this happens to see if it's the update_cache or the refreshGameList or the combination of both that fixes the problem. but outside of reloading the cache from the menu I can't find a reliable way to fix it:
Could you please test this without EmuNAND and SavesNand?
Please provide a syscheck output.
logs attached: SysCheck.csv IOSsyscheck.log
I also figured something else out. after reverting my settings and deleting gametdb_offsets.bin and wiitdb.xml, the black screen hang is gone (although the stack dump persists. going to turn off database base names again to see if it's hanging because I removed the files)
I don't know if there's a way to get a dump because the log is useless, but 80aa124c is where it hangs every single time, on latest. Any idea if that corresponds to some kind of lookup of the .xml file/offset bin (which is now absent)?
okay I have it isolated with 100% repro. database_titles=yes, no database reload -> black screen hang database_titles=yes, database reload, wiitdb.xml present -> game works database_titles=yes, database reload, wiitdb.xml absent -> stack dump database_titles=no -> game works (but all the titles have bad/incorrect names from the iso directly. is there a way to overwrite these manually without wiiflow overwriting titlesdump.ini?)
Okay. somehow, inexplicably, it is now working. the only diff I can find between this and old versions, is that:
in [CHANNELS]:
emulation=1
update_cache=yes
in [GENERAL]:
update_cache=no
dump_list=yes
in [PLUGINS]:
database_title=yes
Here's my working ini file (renamed to .txt for github): wiiflow_lite.txt
and I also wiped, deleted and redownloaded wiitdb.xml through the app
I don't know if there's a way to get a dump because the log is useless, but 80aa124c is where it hangs every single time, on latest. Any idea if that corresponds to some kind of lookup of the .xml file/offset bin (which is now absent)?
Well, it's possible to map the stack addresses to functions. However, I haven't done this yet and would have to do my own research first. @Fledge68 might know how.
i've been reading all your messages/replies. very interesting issue. i have been quite at a loss. but your testing and reporting is awesome.
database_titles is only used for plugins. wii games are technically not plugins but there is a set of wiiflow plugins one of which is for wii games. i believe you are using this plugin for your wii source menu button. If you were using the source=wii for your button you probably wouldn't have this issue.
ok checking code now my brain hurts. database_titles shouldn't effect wii games at all.
question are viewing and playing wii games only? or are you combining wii games with plugin games?
yeah, hopefully it doesn't re-manifest
I have a few theories about why it happened, and it's probably because I'm a tinkerer and it's my own fault but maybe this could help someone else:
I know the reason for point 4, incidentally. line 5 of the xml says
Never modify this file manually, it will get overwritten when you update. You can add games and fixes on the website.
I assumed the reason you should never modify this file manually is because it gets overwritten, and I thought that was a non issue since I never planned to overwrite and was unaware that offsets.bin existed, but I have a mod of a gamecube game that doesn't exist in wiitdb so I added an entry for myself. Which did work on the loader, all the metadata I added loaded correctly
So potentially it's possible that offsets.bin was pointing to the wrong place because I added an entry manually? I'm not sure why all of this would still work in the MENU but would crash on BOOT though. But maybe if it was somehow reading those offsets on load for something but if you reload cache it stores it locally and then loads it from memory that might explain what went wrong? Not sure. Or maybe it's just the specific set of options I used fixed it for some reason. Or maybe because I'm loading from an SD my SD is just being incredibly volatile but just so happening to get exactly reproduceable results and sent me on a wild goose chase (but seems very unlikely from how consistent it was)
sorry I only just saw your other post. I have gamecube games (which always worked fine), and wii disc games. No wads, no homebrew, no emulation, no injects, no plugins, no NAND emulation, just simple disc loading from SD
As far as I can tell "Use plugin database titles" makes the games read their IDs from wiitdb.xml instead of parsing them from the .wbfs (which leads to things like MarioParty4 and BillyHatcher instead of Mario Party 4 and Billy Hatcher and the Giant Egg and some really bad titles like "SPORTS PACK FOR REVOLUTION" and "PARTY PACK FOR REVOLUTION" instead of wii sports and wii play, Wii Sports Resort's name inside the iso is an internal development acronym instead of the game name, etc. . I have no idea why that would then stop the game from booting, maybe it's caching something from that xml that it later uses in the boot process?
do you use the source menu or sourceflow to select wii game covers or gamecube covers?
do you use rhaposodii shima theme and source menu?
I use the default wiiflow-lite menu unthemed. I just select gamecube and wii games from the main menu and press the button to flip between them (I disabled homebrew/plugin buttons, I just display gc/wii). I don't have sourceflow. When I click it it says I don't have it. I'm just running vanilla.
the video in post 2 btw shows my setup so you can see it running in case that's helpful (I also after a couple of boots to show boots work after a reload went through my entire settings menu in the video)
so after the questions, watching your video, looking at your wiiflow_lite.ini and knowing that you don't use a theme or source menu or plugins. you just have a basic setup with wii and gamecube games. my brain hurts even more.
the use database_title option should have nothing to do with your wii game titles. that is ONLY for plugin roms. i'm assuming you problem was that you manually editted wiitdb.xml . and now that you deleted it and downloaded a new one everything should be working fine right?
Yes, everything does seem to be working fine now and I do assume that was the problem!
Describe the bug Only happens to Wii games not Gamecube.
When I boot Wiiflow Lite (either through a forwarder, vwii mode (no priiloader installed and no hacks), and boot any game off SD://wbfs/, there is no loading bar at the bottom and the console hangs on a black screen
To Reproduce Steps to reproduce the behavior:
Workaround
What version of WiiFlow Lite v5.5.4-1 vWii, no priiloader, just patched ios58, cios249, hbc, wiiflow. same difference regardless of whether booting from wad, vwii channel, aroma forwarder no plugins Startup settings set to: mount sd only: yes. USB port: 0. force cios revision: auto.
Additional context force load cios: set to on or off makes no difference. changing cios makes no difference. set all my settings to default, made no difference