mupen64plus / mupen64plus-core

Core module of the Mupen64Plus project
1.32k stars 258 forks source link

Regression: Indiana Jones and the Infernal Machine getting stuck on shop screen again #949

Open thekovic opened 2 years ago

thekovic commented 2 years ago

Played in m64p but when I encountered the bug before, it was a core issue so I'm submitting here.

I played the game on emulator again and I was unpleasantly surprised by this bug again. When you go into the shop screen after completing a level (must be the first completion of the level in that profile), the game slows down to <1 FPS and the shop cannot be controller, preventing progression. It happened to me in level 6 (Palawan Volcano) and level 12 (Meroe). I tested R4300 Emulator = 1 and 2, CountPerOp = 1 and disabling Expansion Pak to solve the issue. Sometimes, a particular combination will actually allow me to progress (Expansion enabled + R4300 = 1 + CountPerOp = 0 for level 6; Expansion disabled + R4300 = 2 + CountPerOp = 1 for level 12). Still, this didn't use to be the case circa 6 months ago.

Here's one of my save states, this one is just before the exit of level 12 - just crawl forwards a bit to finish the level. Indiana Jones and the Infernal Machine (U) [!].zip .

Jj0YzL5nvJ commented 2 years ago

Your save state appears to be glitched. It works even with configurations where it shouldn't work (--emumode 1 --set Core[CountPerOp]=0). https://imgur.com/a/DLdmpB9

P.S: m64p no longer uses dynarec...

Jj0YzL5nvJ commented 2 years ago

Softlocks and hardlocks have always been a possibility when using interpreters, they are very random. The only regression I see is that m64p has stopped using new dynarec and consequently softlocks/hardlocks are back. With new dynarec there is a regression... #950

I have come across some "Core Warnings" when searching for the aforementioned regression. I have only been able to reproduce these warnings with Cached Interpreter in c44352d72dc05005bd23e826e0acb4267aa00719 and a6d04900aef7eefbcd17cdd30d757216d6f2d192 with m64p/mupen64plus-audio-sdl2@7af6cf37fc8eccfcdb266029cce0a5685dbb553a, so is very tricky. Such could be related to this issue, I don't know.

Some times I get:

Core Warning: Unknown PI DMA write: 0x3A50C30 -> 0x806000 (0x1000)
Core Warning: Unknown PI DMA write: 0x3B90C30 -> 0x808000 (0x1000)

Other times I get:

Core Warning: Unknown PI DMA write: 0x3A50C30 -> 0x806000 (0x1000)
Core Warning: Unknown PI DMA write: 0x3B90C30 -> 0x808000 (0x1000)
Core Warning: Unknown PI DMA write: 0x3B90C30 -> 0x80C000 (0x1000)

With mupen64plus-audio-sdl I get:

Audio: Initializing SDL audio subsystem...
Audio: Initializing SDL audio subsystem...

In any of the cases already mentioned, these are always accompanied by softlocks and/or hardlocks.

https://imgur.com/a/OVp6QmC

Save state: https://github.com/gonetz/GLideN64/issues/2473#issuecomment-809526685