Project

General

Profile

Actions

Emulator Issues #620

closed

IL build stopped working at r2286.

Added by sergiy242 over 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. Try to run RE1 on any build of IL after 2276.
    2.
    3.

What is the expected output? What do you see instead?

The emulator crashes starting the game.

What version of the product are you using? On what operating system?

Any build after 2276, WinXP SP2 32bit.

Please provide any additional information below.


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #700: IL Builds brokenDuplicate

Actions
Actions #1

Updated by lannyboyz over 15 years ago

you're 242, right?

Actions #2

Updated by sergiy242 over 15 years ago

Yep, I am. I wonder if this issue is known, couldn't find it in the list...

Actions #3

Updated by federelli over 15 years ago

r2343, working here.

Actions #4

Updated by sergiy242 over 15 years ago

federelli, IL is working? What's your OS?

Actions #5

Updated by federelli over 15 years ago

XP SP3

Actions #6

Updated by sergiy242 over 15 years ago

Just tried 2347 JITIL - still isn't working on XP32 SP2. With any settings of emul or
graphics plugin.

Unhandled Exception
Code: 0xC0000005
Call stack info:
DolphinIL!0x00469A53 : ?

Actions #7

Updated by sergiy242 over 15 years ago

Only ordinary 2347 works here, not JITIL, after 2276. I'm wondering if installation
of SP3 will help....

Actions #8

Updated by sergiy242 over 15 years ago

Installed SP3.

Still, SVN2347 JITIL can't run RE1. Tried various settings, as well
as both OpenGL and D3D plugins, no luck.

Actions #9

Updated by sergiy242 over 15 years ago

May be videocard matters?

My videocard is ATI HD3870 512Mb.

Actions #10

Updated by sl1nk3.s over 15 years ago

does it work with any other game ?

Actions #11

Updated by sergiy242 over 15 years ago

Update:

New IL revisions after 2276 do work, but ONLY when JIT dynarec is disabled, i.e. 2-3
fps obviously. Something was broken after 2276.

But many people say new ILs still work just fine (i.e. with JIT dynarec enabled).

Actions #12

Updated by sergiy242 over 15 years ago

sl1nk3.s,

I have only RE1 and RE0, just tried 2425 IL with RE0 - just the same, immediate error
on disc load (with JIT dynarec enabled).

AppName: dolphinil.exe AppVer: 0.0.0.0 ModName: dolphinil.exe
ModVer: 0.0.0.0 Offset: 0006ad93

exceptioninfo.txt:

Unhandled Exception
Code: 0xC0000005
Call stack info:
DolphinIL!0x0046AD93 : ?

Actions #13

Updated by sergiy242 over 15 years ago

PS:
My current config: C2D 2.4, Intel motherboard, WinXP SP3 32bit, Radeon HD3870, latest
DirectX 9.0c.

Actions #14

Updated by federelli over 15 years ago

We got practically the same computer, it works wonders here, fullscreen, only bad
thing is it crashes randomly, and save states hardly ever work.

I got a C2D E6600, MSI 975X PUE, XPSP3 32bit, Visiontek HD3870.

Actions #15

Updated by sergiy242 over 15 years ago

federelli, ILs after 2276 run fine on your computer?

Now, what is the difference between our sutups that allows yours to work fine.....

About crashes, see issue #620, I had them too, but the problem is gone somehow. I use
2195 IL though.

  1. Use 2195 IL
  2. Try to restart your computer before playing, don't run anything prior Dolphin.
Actions #16

Updated by sergiy242 over 15 years ago

BTW, it's not a problem of only RE1, ILs can't run any game anymore here.

Actions #17

Updated by sl1nk3.s over 15 years ago

nah, i've the same problem compiling my own regular SVN builds. it always crash while
booting a game using JITIL...
But there's some guys on emuforums who seem to have tracked the bug as their builds
just run fine.

Actions #18

Updated by Kevin.Smith34 over 15 years ago

Same problem here, can't run any game in IL version after R2276 if dynarec is
enabled.

AppName: dolphinil.exe AppVer: 0.0.0.0 ModName: dolphinil.exe
ModVer: 0.0.0.0 Offset: 0006ab83

Exceptioninfo.txt

Unhandled Exception
Code: 0xC0000005
Call stack info:
DolphinIL!0x0046AB83 : ?

Actions #19

Updated by federelli over 15 years ago

As weird as it sounds i've been getting this issue as well, you know what i did, i
created a new folder and moved the emulator there, issue fixed.
Something's being cached somewhere in Windows that the emulator does not like.

Actions #20

Updated by sl1nk3.s over 15 years ago

hmm.. no unfortunately i'm still getting the same crash, also it's the same behavior
for the weekly builds (http://www.dolphin-emu.com/downloads.php)

Actions #21

Updated by sergiy242 over 15 years ago

i've the same problem compiling my own regular SVN builds. it always crash while
booting a game using JITIL...
But there's some guys on emuforums who seem to have tracked the bug as their builds
just run fine.

Well, then where a newer revision compiled supposedly correctly can be found, don't
you know?
I tried download nightly builds, builds from official page, from Daco, from that
Japanese site - they all don't work.

Actions #22

Updated by sl1nk3.s over 15 years ago

fiiinally...
r2286 is to blame, if you revert r2286 changes then it works fine.
satanic666 from emuforums
(http://forums.ngemu.com/dolphin-discussion/107876-dolphin-svn-discussion-thread-284.html#post1596527)
had figured it since two week or so..

Actions #23

Updated by sergiy242 over 15 years ago

So, where new working IL builds can be regularly found?

Actions #24

Updated by sergiy242 over 15 years ago

Yep, satanic666's newer ILs really do work.
But almost everybody's else still don't.

Actions #25

Updated by magumagu9 over 15 years ago

Hmm... does reverting the change in r2286 to
Source/Core/Core/Src/PowerPC/Jit64IL/Jit_SystemRegisters.cpp by itself fix the problem?

Actions #26

Updated by sl1nk3.s over 15 years ago

did you mean reverting Jit_systemRegisters.cpp only ? it didn't work :\

although, just commenting the first part of IR.cpp that you added in r2286 do the
trick. So the following works :

if (getOpcode(*Op1) == FDMul) {
	// return FoldBiOp(FSMul, getOp1(OOp1), getOp2(OOp2));
} else if (getOpcode(*Op1) == FDAdd) {
	// return FoldBiOp(FSAdd, getOp1(OOp1), getOp2(OOp2));
} else if (getOpcode(*Op1) == FDSub) {
	// return FoldBiOp(FSSub, getOp1(OOp1), getOp2(OOp2));
}

So the problem is there, seems like it eventually die in a EmitBiOp() but it could be
the returned value too..

Actions #27

Updated by sergiy242 over 15 years ago

A guy who tried to run 32-bit ILs after 2276 (actually probably 2286 as he didn't try
every version) on 64-bit Windows wrote that they worked for him. BUT they hadn't
worked for him prior 2276.
A totally contrary situation here on 32-bit Windows :)

Actions #28

Updated by marcus over 15 years ago

Issue 700 has been merged into this issue.

Actions #29

Updated by sl1nk3.s over 15 years ago

Is magumagu still around or did he forget about this issue ? :P
Can anyone cc: this to him ? (and rename the issue at the same time)

Actions #30

Updated by marcus over 15 years ago

rename it to what?

Actions #31

Updated by sergiy242 over 15 years ago

, to something like "IL stopped to work after SVNxxxx" because it's
not only RE1 that doesn't start, but any game.
I'm not sure the revision number after which it stopped to work, but it worked on
2276 and 2195.

Actions #33

Updated by marcus over 15 years ago

OK. Title changed.

Actions #34

Updated by BhaaL over 15 years ago

I just did some debugging using the DebugFast configuration and JITTEST=1, it seems
that a LoadFReg Operation breaks at IREmitter::getOp1. With InstLoc i = 0x01080070 by
that time (*i = 7999), the fancy Pointer arithmetics at IR.h:91 return i - 1 - ((*i

  1. & 255) = 0x0107fff0 - and thats outside the Memory locations Dolphin uses (it
    is off by 4 DWords/16 bytes).

I guess someone wanted a range check there, but got the wrong Operators ;)

Index: I:/Dolphin/svn/Source/Core/Core/Src/PowerPC/Jit64IL/IR.cpp

--- I:/Dolphin/svn/Source/Core/Core/Src/PowerPC/Jit64IL/IR.cpp (revision 2666)
+++ I:/Dolphin/svn/Source/Core/Core/Src/PowerPC/Jit64IL/IR.cpp (working copy)
@@ -326,7 +326,7 @@
if (Opcode == DoubleToSingle) {
if (getOpcode(*Op1) == DupSingleToMReg)
return getOp1(Op1);

  •   if (getOpcode(*Op1) >= FDMul || getOpcode(*Op1) <= FDSub) {
    
  •   if (getOpcode(*Op1) >= FDMul && getOpcode(*Op1) <= FDSub) {
      	InstLoc OOp1 = getOp1(Op1), OOp2 = getOp2(Op1);
      	if (getOpcode(*OOp1) == DupSingleToMReg &&
      	    getOpcode(*OOp2) == DupSingleToMReg) {
    
Actions #35

Updated by marcus over 15 years ago

That will fix it?

Actions #36

Updated by BhaaL over 15 years ago

It did for me, and I guess magu wanted to see if the Opcode was between FDMul and
FDSub. As the if-Statement is now, it checks if its either above FDMul or below
FDSub, which is always true.

Actions #37

Updated by sl1nk3.s over 15 years ago

Nice catch !
It's the right fix, I didn't noticed that these vars were enum values in the first
place, now it's obvious that this condition is dumb :p

Actions #38

Updated by marcus over 15 years ago

OK, I'll commit it.

Actions #39

Updated by marcus over 15 years ago

  • Status changed from New to Fixed

And now I will feel the wrath of all the devs :p

Actions #40

Updated by sergiy242 over 15 years ago

, does it fix 32-bit IL?
because I see the folder name of the edited cpp is called Jit64IL.

Actions #41

Updated by marcus over 15 years ago

shrug
I don't even know how to do a IL build.

Actions #42

Updated by sl1nk3.s over 15 years ago

sergiy242 > this fix is for the 32-bits IL builds, the only one that works too :p
Jit64IL is just the name of the folder containing the code, just like Jit64 is the
name of the folder containing the standard JIT, whether you want to compile it
compile it in x64 or x86 is up to you, but it's still the same path, with a few
tweaks here and there.

Actions #43

Updated by magumagu9 over 15 years ago

Ah, that's what the issue was... thanks for spotting that.

Actions

Also available in: Atom PDF