wheremyfoodat / Panda3DS

HLE 3DS emulator
https://panda3ds.com/
GNU General Public License v3.0
965 stars 66 forks source link

Rhythm Heaven Megamix and Rhythm Paradise Megamix hang on black screen #88

Closed wheremyfoodat closed 1 year ago

wheremyfoodat commented 1 year ago

I can get Rhythm Heaven Megamix (USA) to go in-game by adding a hack to the threading system. Seems like the games might be broken due to a thread scheduler issue that causes an important thread to never run. Pictures of the title screen and hack used to get it below image image

patataofcourse commented 1 year ago

fyi the entire game runs on a music/bpm-based engine (which leads to some buggery for example when you open rosalina on luma3ds), so it might be related to that

EstexNT commented 1 year ago

It looks like the main game thread (index 0) gets constantly(every frame?) sent into a second-long Sleep at some point during save file initialization (at 0028c020)

wheremyfoodat commented 1 year ago

As @PSI-Rockin brought to my attention, there's a couple more things that can preempt the kernel thread scheduler, such as a thread waking up from sleep or any timer interrupt. This is not handled yet and may be the cause of this bug. Will need a proper timing system before investigating.

wheremyfoodat commented 1 year ago

Forgot to close this. Fixed in #152 (Megamix) and #180 (Paradise)