skyfloogle / red-viper

A Virtual Boy emulator for the 3DS
794 stars 18 forks source link

Virtual Lab won’t advance. #35

Closed wickjames086 closed 8 months ago

wickjames086 commented 8 months ago

Virtual Lab exhibits a bug where the gameplay locks up but the music and background continue. It’s a falling-block puzzle game, so imagine you’re playing Tetris and the next piece appears at the top of the screen but never starts falling. You can’t control the game at this point including pressing start to pause.

Loving the app so far; I’m having a great time playing Mario Clash and Wario Land.

skyfloogle commented 8 months ago

What were you doing when this bug occurred?

wickjames086 commented 8 months ago

Just playing the game like normal; it’s happened three times.

wickjames086 commented 8 months ago

Thought I’d try the game with performance info enabled. I didn’t notice anything anomalous when the game locked up.

skyfloogle commented 8 months ago

I'm having difficulty reproducing this. In https://github.com/skyfloogle/red-viper/commit/469800996eb25a9726b8ec221daae8e4fc2b2b57, I added a button to the options menu that allows dumping some debug info that may help me diagnose the issue. Are you able to reproduce using this new build? I'd also like to note that what you're describing sounds a lot like a bug I ran into before release. It was quite an amusing bug: the game as programmed should lock up, were it not for interrupts incorrectly overwriting data that yanks the game out of that state. One bug resolved by another bug, in other words. To unlock the game, the interrupts need to happen at a fairly specific moment in at least one frame. On real hardware this is pretty random, but the emulator by design puts these in predictable places, which happened to be the wrong places. The fix I made was to manually put an interrupt check in a good spot.

wickjames086 commented 8 months ago

I apologize, but I don't have enough technical knowledge to obtain a version of the app newer than the newest official release.

skyfloogle commented 8 months ago

You can get a nightly build from the "Actions" tab. Open the latest entry (currently this), and there should be downloads at the bottom.

wickjames086 commented 8 months ago

Thanks for the info on how to install the nightly; it makes sense now. I was about to get the latest when I saw that you happened to upload a new stable version.

Unfortunately I'm still facing the same problem which happened almost immediately, although I've noticed that it tends to happen when the game speed is set to low. I've attached the debug text file, but it doesn't seem to allow me to upload the debug replay bin file. debug_info.txt

skyfloogle commented 8 months ago

Someone else managed to upload it as a zip. Could you try that?

wickjames086 commented 8 months ago

Gotcha, I didn't think of that. virtuallab.zip

skyfloogle commented 8 months ago

Hm, your replay seems to behave normally. However, I found another issue: you're using the English patch. My game-specific patches work based on checksums, and the English patch wasn't taken into account in the lock-up glitch I fixed. The other debug info suggests you're running into that same glitch. Could you check whether this build fixes the issue?

wickjames086 commented 8 months ago

Oh lol I didn’t even realize I was using the fan translation. Sorry about that. Thanks for fixing it!