What's new

Hangs with anything other than pure interpreter in Majora's Mask

blargity

New member
I realize this has been discussed a bit in the 0.4 days, but I thought I'd mention it here with active development occurring on the 64bit branch.

Majora's Mask hangs, usually after only a few minutes with anything other than pure interpreter enabled. I know Richard42 was primarily interested in segfaults - though I'm not sure of Mupen's architecture, is it possible that the emulator process is dying in the background, and not dumping anything to stdout/stderr? I'm using the GUI frontend.

I can answer any questions about my setup. Certainly I've noticed this behavior since vanilla 0.5, so it's been around for a while. It happens regardless of what plugins I use.
 
OP
B

blargity

New member
Sorry for replying to myself, but upon further inspection the situation is somewhat different than I originally thought.

Both the 1.1 and SVN versions of the AMD64 branch hang within a few minutes of gameplay, not always at the same place, regardless of whether or not Dynamic Recompilation is enabled. This is a definite regression from Mupen 0.5. This is a 32bit build.

Poking around with GDB, if Dynamic Recompilation is enabled the hang seems to occur in gen_interrupt. The emulator thread is either in gen_interrupt or in a place it doesn't have debugging symbols, and since gen_interrupt() acts entirely on globals I'm not sure of the state at the time - I'm a gdb noob, sorry for the lack of info.

If you can make it to Clock Town at all then you've managed to skip past this bug.
 

Richard42

Emulator Developer
Thanks for reporting the bug. The dynamically recompiled code is difficult to debug. The gen*() functions are the C functions which emit the compiled x86 instructions to emulate the r4300. The hangup is probably not in the gen_interrupt() function itself.

If I can reproduce the bug I should be able to fix it. Is there anything in particular that you do in the game which seems to trigger it? I'll take a look at it this week.
 
OP
B

blargity

New member
I played with this bug for far longer than I really wanted to last night ;-)

The bug occurs with the pure interpreter on as well. I ran a memtest on my machine to verify it wasn't a hardware issue, and when that came up neg I would up grabbing a different copy of the ROM. The trouble vanished.

So while this still may qualify as a regression (the "broken" rom plays fine in 0.5), we may have crossed into "too damn hard to debug". Now I'm just trying to find a video plugin that will actually render most of the game ;-)

Thanks fr the quick response Richard. If you decide t try to track it down, the hang almost always occurs during the opening sequence, when you're just pressing buttons to move the cut scene forward.
 

Richard42

Emulator Developer
I played through a whole bunch of Majora's mask this afternoon in the debugger with the 64-bit build and the dynamic recompiler and never encountered any problems. The ROM that I played gave this data:

CRC: 5354631c 3a2def0
name: ZELDA MAJORA'S MASK
Manufacturer: Nintendo
Cartridge_ID: 535a
Country : United States
size: 4096
PC= 80080000
md5 code:2A0A8ACB61538235BC1094D297FB6556

As long as there is a ROM dump for this game which runs properly it's probably not worth the time to track down the problem. It could be related to the bad dump.
 

azzamite

black beast of AAAAaaaahhhh!!!
How did you get the info?

HI, I have the same problem playing Majora's Mask.
The game ramdomly hangs specialy while I reach
the weird small tree before reaching Clock Town the
first time, and falling the clift before being converted
to a scrub. So I have to save the state every 5 minuts...

Where do you get that info about the ROM from?
I do right click on the rom and properties but nothing
of what you put appears, only
Name (blank)
Size 256.0 MBits
conuntry Europe (0x50)
Ini Code E97955C6-BC338D38-C50
MD5 (doesn't calculate) 13fab67e603b002ceaf0eea84130e973
 

Top