Dolphin, the GameCube and Wii emulator - Forums

Full Version: Isolating what's causing a crash (summoner: a goddess reborn gc)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

fukkatsu

I've been tinkering with settings over this not so popular gc game. The main issue is that the game freezes during area transitions and on character select screens (also randomly but that is rare enough that I can deal with it). The only work around for this freezing is a combination of save states and reloading saves to brute force your way past it. The wiki states that adjusting the clock rate helps but even with a 47hz clock rate or a 30hz clock rate I still get stuck troubleshooting certain areas. Most of the time I can get by leaving the clock rate at default.

I loaded up the game in dev mode and I can see that every time the game freezes (whichever way it freezes) the exceptions register gets a x00000005. I'm unsure what that exception is and I'm a rookie at messing with the debugger.

I wanted to start by figuring out whether the audio, graphics, or computation part of dolphin is what's causing the crashing.

Audio: I don't suspect audio too much. Whenever the game freezes most of the time I get a buzzing noise (of varying pitches and volumes) but the music continues to play. This doesn't happen if it freezes on a character select screen where there is no audio other than when you move the cursor. Besides that the audio is fairly unremarkable. I usually play on DSP LLE recompiler; XAudio2 but have tried many settings including no audio.

Graphics: I suspect graphics the most. Sometimes when the game freezes you can see that something or some things did not render on screen (though this isn't always the case or at least I can't find what isn't rendering). Most notably I took these screenshots where I am currently stuck: https://imgur.com/a/ryLeMaS
What is supposed to happen during this transition is Maia (red mask) is supposed to face the camera and the camera should be off to the side. A scene should play where she talks to the other members of the party. After the scene it should look like the right screenshot when you regain control of Maia. What actually happens is that I was never able to get the scene to load (or on a reduced clock rate I got the first couple seconds to load but the game doesn't let you pause/skip until a few seconds into the screen and I can't get to the skip point yet). The way that I got these screenshots is my mashing start as the area was loading. I suspect that the fact that those shots were rendered in the first place is a bug with the game where it loads where you should be and then reloads everybody to play the scene. The shot on the left I can see it for one frame occasionally but rarely I can get it to freeze on that shot by hitting resume. Regardless of if I hit resume or skip the game freezes in this situation. I am not sure if Maia being turned around (facing the camera) is a transformation to set up for the cutscene or if it is a random transformation as I have noted transformations with models at other points in the game (for example characters standing in a slightly wrong spot). The rest of the scene where Maia and one perduellion are missing their bodies and certain things are being loaded in the foreground instead of the background is what's really odd to me.
I usually use DirectX11 and my graphics card. The screenshot on the left was on OpenGL but on DirectX11 I get a similar screenshot with even less rendered. 

Computational: honestly I don't even really know what to do if this is the case or how to check it but I have tried other CPU emulators other than JIT recompiler and found the same freezing with all of them.

Hacks: Pretty much ruled out. I've tried with all hacks enabled or disabled as well as trying one at a time and still show the same freezing.

What I am trying to do is figure out how to put a breakpoint into me hitting the A button so that I can read the assembly and figure out what the system is trying to do when it gets the exception but I can't figure out how to get a breakpoint there. Any advice on how to set up the breakpoint or what the indications I've seen make you guys think might be happening?

I think the end goal for me is (assuming it's a graphics or audio bug) to see if I can bring in an older graphics or audio backend from the days of r7670 when the game supposedly "worked flawlessly" or see if I can figure out some other kind of work around.