Project

General

Profile

Actions

Emulator Issues #917

closed

JIT compiler crashes

Added by Line524 about 15 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

What steps will reproduce the problem?
1.Accessing inventory in Resident Evil 4 and trying to leave it
2.Crashes occasionally show up in Zelda Wind Waker in places like the
Tower of the Gods.
3.Additional info below (looks helpfull):

entry__13mDoExt_bpkAnmFP12J3DModelDataf
8000dff0: stwu sp, -0x0010 (sp)
8000dff4: mflr r0
8000dff8: stw r0, 0x0014 (sp)
8000dffc: addi r4, r4, 88
8000e000: bl ->0x8000E2F4
8000e004: lwz r0, 0x0014 (sp)
8000e008: mtlr r0
8000e00c: addi sp, sp, 16
8000e010: blr

It's a great function, really. But for some completely inexplicable
reason, by the time the game is running, it has turned into this:

entry__13mDoExt_bpkAnmFP12J3DModelDataf
8000dff0: stwu sp, -0x0010 (sp)
8000dff4: mflr r0
8000dff8: stw r0, 0x0014 (sp)
8000dffc: addi r4, r4, 88
8000e000: b ->0x80011F80
8000e004: JITblock 16256
8000e008: JITblock 934
8000e00c: addi sp, sp, 16
8000e010: blr

Note in particular the fact that a bl instruction to one address has
turned into a b instruction from an entirely different address.

In the original code, the hex values for the three modified instructions
are as follows:

480002f5
80010014
7c0803a6

I have absolutely no idea why this is happening, but I do know this: in
the corrupted code, the three instructions that have changed have the
following hex values:

48003f80
00003f80
000003a6

It would appear that 8 bytes of instructions have been overwritten with
3f8000003f800000.

No idea why this is, but it's not a coincidence, I know that much.
The exact same thing happens in Resident Evil 4 on a branch were the
result is always corrupted using JIT core, I haven't been able to find why
it fails though.
In Resident Evil 4 the crashes only usually occur when accessing the
inventory, map, treasure and file screens. In RE4 you'll be able to access
these screens only once, trying to access these a second time will crash
the game and emulator.

So is the Windwaker and RE4 issues similar, in that if one is fixed, it'll
fix the other. I don't get why RE4 only crashes when accessing these
screens but normal ingame play is fine.

What version of the product are you using? On what operating system?
Every Dolphin version gives this on any system. Deactivating JIT compiler
fix this, but playing on interpreter is too slow (2 or 3 fps.)


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #903: Memory corruption in Zelda: Wind WakerDuplicate

Actions
Actions

Also available in: Atom PDF