PS3 Compatibility List - PS2 on PS3

Jak and Dexter softlock can be next if possible but i think is more easy games has graphical glitches can be fixe than games have softlockups but one game DRIVER 3 is unfixable i think
and would be nice if we (the community ) make repositories of fixes for people get then if want fixes their games of ps2 in PS3 60gb Europeans
 
Jak & Daxter Precursors' Legacy and Crash Twinsanity PAL gxemu fixes in attachment. Credits for original netemu patches to mrjaredbeta (Crash Twinsanity) and Agrippa (Jak & Daxter).

EDIT: Is there a page with those custom configs for ps2_gxemu or they float around this topic only?
 

Attachments

Jak & Daxter Precursors' Legacy and Crash Twinsanity PAL fixes in attachment. Credits for original netemu patches to mrjaredbeta (Crash Twinsanity) and Agrippa (Jak & Daxter).

-thanks a lot that's very impressive this kind of fixes will help the GXEMU be the best way for ps2 games in my opinion
with rsx 40nm on ps3 60gb pal or 80gb USA CECHE will be the best way

EDIT: Is there a page with those custom configs for ps2_gxemu or they float around this topic only?
thanks a lot that's very impressive this kind of fixes will help the GXEMU be the best way for ps2 games in my opinion
with rsx 40nm on ps3 60gb pal or 80gb USA CECHE will be the best way

for me I don't any problem put the fixes here in this topic is ps2 compatibility list the goal is the same increase the compatibility of ps2 games on ps3 with netemu or GXemu now
 
Check txt.
Try this fix.

I'm trying to port the SLUS_213.76 configuration, what am I doing wrong?
Code:
00 00 00 74 89 75 D9 E5 00 34 11 78 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 00 00 
34 11 90 00 00 00 04 00 00 00 00 00 37 EB 14 00 00 00 00 4A F1 03 BC 4B 00 04 60 4B 00
04 60 4A F1 03 BC 00 37 EB 30 00 00 00 00 4B 71 03 BC 4A 80 04 60 4A 80 04 60 4B 71 A3 BC
 
Last edited:
Code:
00 00 00 74 89 75 D9 E5 00 34 11 78 00 00 00 01
00 00 00 08 00 00 00 00 00 00 00 00 00 34 11 90 00 00 00 04 00 00 00 00 <---- count is 2, not 4.
00 37 EB 14 00 00 00 00 4A F1 03 BC 4B 00 04 60 4B 00 04 60 4A F1 03 BC \_wrong opcodes used
00 37 EB 30 00 00 00 00 4B 71 03 BC 4A 80 04 60 4A 80 04 60 4B 71 A3 BC /
Due to reversed endianess, 64 bit opcode pairs end up in very weird form.
Original code from game:
Code:
BC 03 F1 4A 60 04 00 4B
Think of it as of a single 64 bit value, not 2x 32 bit. Now byte reverse it as a whole 64 bits.
Code:
4B 00 04 60 4A F1 03 BC

This is very confusing because original opcode from 0037EB14 is presented as second opcode, while that one from 0037EB18 is first. The same rules apply to replace opcodes.
 
C 03 F1 4A
Code:
00 00 00 74 89 75 D9 E5 00 34 11 78 00 00 00 01
00 00 00 08 00 00 00 00 00 00 00 00 00 34 11 90 00 00 00 02 00 00 00 00 <---- count is 2, not 4.
00 37 EB 14 00 00 00 00 4A F1 03 BC 4B 00 04 60 4B 00 04 60 4A F1 03 BC \_wrong opcodes used
00 37 EB 30 00 00 00 00 4B 71 03 BC 4A 80 04 60 4A 80 04 60 4B 71 A3 BC /
Due to reversed endianess, 64 bit opcode pairs end up in very weird form.
Original code from game:
Code:
BC 03 F1 4A 60 04 00 4B
Think of it as of a single 64 bit value, not 2x 32 bit. Now byte reverse it as a whole 64 bits.
Code:
4B 00 04 60 4A F1 03 BC

This is very confusing because original opcode from 0037EB14 is presented as second opcode, while that one from 0037EB18 is first. The same rules apply to replace opcodes.

this is very confusing :/

SLUS_213.76 Black WIP - It worked in my tests
Code:
00 00 00 74 89 75 D9 E5 00 34 11 78 00 00 00 01
00 00 00 08 00 00 00 00 00 00 00 00 00 34 11 90 00 00 00 02 00 00 00 00
00 37 EB 14 00 00 00 00 4B 00 04 60 4A F1 03 BC 4A F1 03 BC 4B 00 04 60
00 37 EB 30 00 00 00 00 4A 80 04 60 4B 71 03 BC 4B 71 03 BC 4A 80 04 60
 
Last edited:
other game freezes softlockup is WRC the first one but I think exist one config for netemu for the japanese version
Tekken Tag slow motion ( but i think is uncorrectable ) is the same with netemu
Black teleport or freeze i don't remember well
 
Greetings!

Both PAL and NTSC versions of Ecco the Dolphin: Defender of the Future have a noticeable graphical glitch in one of in-game cutscenes - a relatively minor one, but maybe it wouldn't be too difficult to fix with a custom CONFIG?

The issue in question can be seen in this video (not mine and recorded on PCSX2, which behaves exactly the same) starting from 5:35:39, it looks like cyan flashes:


I don't know if this info would be of any help for PS3's emulator, but on PCSX2 it's actually fixable (for latest stable and older nightlies) by enabling FPU Negative Div Hack or (for latest nightlies) by switching either EE Rounding Mode to "Nearest" or Division Rounding Mode to "Negative" or "Chop/Zero".

P.S. Just in case: there exists a level select cheat for this game, it can be found at GameFAQs, plus I can provide savestates for PCSX2, if needed (though, I don't have ability to post links just yet).
Okay, I hope I won't be cluttering this thread too much, just wanted to share my own findings regarding that bug with Ecco's cutscene I mentioned before.

Code:
002C8770    sll v0,v0,0x04
002C8774    lw v1,0x46C(s3)
002C8778    addu a1,v0,v1
002C877C    lw a2,0x4(a1)
002C8780    lw t0,0x8(a1)
002C8784    addiu v0,a2,0x40
002C8788    sw v0,0x4(a1)
002C878C    addiu v0,t0,0x10
002C8790    sw v0,0x8(a1)
002C8794    lwc1 f00,0x44(a3)
002C8798    sub.s f03,f06,f00
002C879C    lwc1 f00,0x3F4(s3)
002C87A0    mul.s f00,f03,f00
002C87A4    mul.s f00,f00,f04
002C87A8    cvt.w.s f01,f00
002C87AC    mfc1 v0,f01
002C87B0    sb v0,0x90(sp)
002C87B4    lwc1 f00,0x3FC(s3)
002C87B8    mul.s f00,f03,f00
002C87BC    mul.s f00,f00,f04
002C87C0    cvt.w.s f01,f00
002C87C4    mfc1 v0,f01
002C87C8    sb v0,0x91(sp)
002C87CC    lwc1 f00,0x404(s3)
002C87D0    mul.s f00,f03,f00
002C87D4    mul.s f00,f00,f04
002C87D8    cvt.w.s f01,f00
002C87DC    mfc1 v0,f01
002C87E0    sb v0,0x92(sp)
002C87E4    lwc1 f00,0x30(a3)
002C87E8    sub.s f00,f00,f05
002C87EC    lwc1 f01,-0x55F0(gp)
002C87F0    mul.s f00,f00,f01
002C87F4    cvt.w.s f01,f00
002C87F8    mfc1 v0,f01
002C87FC    andi v0,v0,0x3FFF
002C8800    sll v0,v0,0x02
002C8804    addu v1,v0,s1
002C8808    lwc1 f01,0x0(v1)
002C880C    addu v0,v0,s0
002C8810    lwc1 f02,0x0(v0)
002C8814    lwc1 f00,0x38(a3)
002C8818    mul.s f00,f02,f00
002C881C    swc1 f00,0x4C(sp)
002C8820    lqc2 vf04,0x0(t7)
002C8824    vmulw.xyz vf07,vf04,vf04w
002C8828    sqc2 vf07,0x0(t3)
002C882C    ld v0,0xC0(sp)
002C8830    sd v0,0xB0(sp)
002C8834    ld v0,0xC8(sp)
002C8838    sd v0,0xB8(sp)
002C883C    lwc1 f00,0x38(a3)
002C8840    mul.s f00,f01,f00
002C8844    swc1 f00,0x5C(sp)
002C8848    lqc2 vf04,0x0(t6)
002C884C    vmulw.xyz vf07,vf04,vf04w
002C8850    sqc2 vf07,0x0(t2)
002C8854    ld v0,0xD0(sp)
002C8858    sd v0,0xC0(sp)
002C885C    ld v0,0xD8(sp)
002C8860    sd v0,0xC8(sp)
002C8864    lqc2 vf04,0x0(t1)
002C8868    lqc2 vf05,0x0(t3)
002C886C    vadd.xyz vf07, vf04, vf05
002C8870    sqc2 vf07,0x0(t2)
002C8874    ld v1,0xD0(sp)
002C8878    sd v1,0xA0(sp)
002C887C    ld v0,0xD8(sp)
002C8880    sd v0,0xA8(sp)
002C8884    sd v1,0x70(sp)
002C8888    sd v0,0x78(sp)
002C888C    lwc1 f00,0x38(a3)
002C8890    neg.s f00,f00
002C8894    mul.s f00,f00,f01
002C8898    swc1 f00,0x4C(sp)
002C889C    lqc2 vf04,0x0(t7)
002C88A0    vmulw.xyz vf07,vf04,vf04w
002C88A4    sqc2 vf07,0x0(t3)
002C88A8    ld v0,0xC0(sp)
002C88AC    sd v0,0xB0(sp)
002C88B0    ld v0,0xC8(sp)
002C88B4    sd v0,0xB8(sp)
002C88B8    lwc1 f00,0x38(a3)
002C88BC    mul.s f00,f02,f00
002C88C0    swc1 f00,0x5C(sp)
002C88C4    lqc2 vf04,0x0(t6)
002C88C8    vmulw.xyz vf07,vf04,vf04w
002C88CC    sqc2 vf07,0x0(t2)
002C88D0    ld v0,0xD0(sp)
002C88D4    sd v0,0xC0(sp)
002C88D8    ld v0,0xD8(sp)
002C88DC    sd v0,0xC8(sp)
002C88E0    lqc2 vf04,0x0(t1)
002C88E4    lqc2 vf05,0x0(t3)
002C88E8    vadd.xyz vf07, vf04, vf05
002C88EC    sqc2 vf07,0x0(t2)
002C88F0    ld v1,0xD0(sp)
002C88F4    sd v1,0xA0(sp)
002C88F8    ld v0,0xD8(sp)
002C88FC    sd v0,0xA8(sp)
002C8900    sd v1,0x80(sp)
002C8904    sd v0,0x88(sp)
002C8908    addiu a0,a3,0x10
002C890C    lqc2 vf04,0x0(a0)
002C8910    lqc2 vf05,0x0(t5)
002C8914    vsub.xyz vf07, vf04, vf05
002C8918    sqc2 vf07,0x0(t1)
002C891C    ld v1,0xB0(sp)
002C8920    sd v1,0xA0(sp)
002C8924    ld v0,0xB8(sp)
002C8928    sd v0,0xA8(sp)
002C892C    sd v1,0x0(a2)
002C8930    ld v0,0xA8(sp)
002C8934    sd v0,0x8(a2)
002C8938    addiu a2,a2,0x10
002C893C    lqc2 vf04,0x0(a0)
002C8940    lqc2 vf05,0x0(t4)
002C8944    vadd.xyz vf07, vf04, vf05
002C8948    sqc2 vf07,0x0(t1)
002C894C    ld v1,0xB0(sp)
002C8950    sd v1,0xA0(sp)
002C8954    ld v0,0xB8(sp)
002C8958    sd v0,0xA8(sp)
002C895C    sd v1,0x0(a2)
002C8960    ld v0,0xA8(sp)
002C8964    sd v0,0x8(a2)
002C8968    addiu a2,a2,0x10
002C896C    lqc2 vf04,0x0(a0)
002C8970    lqc2 vf05,0x0(t4)
002C8974    vsub.xyz vf07, vf04, vf05
002C8978    sqc2 vf07,0x0(t1)
002C897C    ld v1,0xB0(sp)
002C8980    sd v1,0xA0(sp)
002C8984    ld v0,0xB8(sp)
002C8988    sd v0,0xA8(sp)
002C898C    sd v1,0x0(a2)
002C8990    ld v0,0xA8(sp)
002C8994    sd v0,0x8(a2)
002C8998    addiu a2,a2,0x10
002C899C    lqc2 vf04,0x0(a0)
002C89A0    lqc2 vf05,0x0(t5)
002C89A4    vadd.xyz vf07, vf04, vf05
002C89A8    sqc2 vf07,0x0(t1)
002C89AC    ld v1,0xB0(sp)
002C89B0    sd v1,0xA0(sp)
002C89B4    ld v0,0xB8(sp)
002C89B8    sd v0,0xA8(sp)
002C89BC    sd v1,0x0(a2)
002C89C0    ld v0,0xA8(sp)
002C89C4    sd v0,0x8(a2)
002C89C8    lwl v0,0x93(sp)
002C89CC    lwr v0,0x90(sp)
002C89D0    swl v0,0x3(t0)
002C89D4    swr v0,0x0(t0)
002C89D8    addiu t0,t0,0x4
002C89DC    lwl v0,0x93(sp)
002C89E0    lwr v0,0x90(sp)
002C89E4    swl v0,0x3(t0)
002C89E8    swr v0,0x0(t0)
002C89EC    addiu t0,t0,0x4
002C89F0    lwl v0,0x93(sp)
002C89F4    lwr v0,0x90(sp)
002C89F8    swl v0,0x3(t0)
002C89FC    swr v0,0x0(t0)
002C8A00    lwl v0,0x93(sp)
002C8A04    lwr v0,0x90(sp)
002C8A08    swl v0,0x7(t0)
002C8A0C    swr v0,0x4(t0)
002C8A10    lw a3,0x0(a3)
002C8A14    bnel a3,zero,0x002C8770

That's for PAL version. For NTSC it's 0x2CB518-0x2CB7BC, but I mostly do my testings on the former, because it's the one I usually have at hand and because it supports 60Hz anyways. Speaking of which, the glitch is apparently capable of being MUCH worse in the 50Hz mode, like visuals turning into a mess of colored rectangles rather than just flashes of blue light.

So far I've come up with two ways of dealing with the issue, sadly neither of them is ideal:

1. Use the 0x0F command (actually just 0x27 is enough, 0x26 doesn't seem to affect anything) on the range above: reduces those flashes significantly - if you're lucky you won't see a single one, but it's random and sometimes it would still flicker for me during tests once or twice.

2. NOP the last instruction using 0x0A command and skip that section altogether: this gets rid of flashes completely, but will break a visual effect that's used in at least one another cutscene (can be seen in the video in my previous post at 5:53:07, looks like glowing purple spheres) making it almost invisible.

Well, considering that the game already has tons of smaller glitches (mostly texture flickering, nothing as severe as that flashing) caused by calcualtion inaccuracies, perhaps the first option isn't too bad…

Maybe something better could be achieved with commands 0x11 or 0x12, but I haven't had much time to take a closer look at them yet; I'm planning to, eventually, though they sure look a bit intimidating for a total noob like me. :D
 
GX_EMU - SCUS_971.02 Gran Turismo 3: A-Spec -> netemu's port
Code:
00 00 00 0E B9 A5 E8 A5 00 34 11 78 00 00 00 03
00 00 00 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00
00 00 00 00 00 01 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Apparently fixes the stutter in the intro. Can someone test this?
 
Okay, I hope I won't be cluttering this thread too much, just wanted to share my own findings regarding that bug with Ecco's cutscene I mentioned before.

Code:
002C8770    sll v0,v0,0x04
002C8774    lw v1,0x46C(s3)
002C8778    addu a1,v0,v1
002C877C    lw a2,0x4(a1)
002C8780    lw t0,0x8(a1)
002C8784    addiu v0,a2,0x40
002C8788    sw v0,0x4(a1)
002C878C    addiu v0,t0,0x10
002C8790    sw v0,0x8(a1)
002C8794    lwc1 f00,0x44(a3)
002C8798    sub.s f03,f06,f00
002C879C    lwc1 f00,0x3F4(s3)
002C87A0    mul.s f00,f03,f00
002C87A4    mul.s f00,f00,f04
002C87A8    cvt.w.s f01,f00
002C87AC    mfc1 v0,f01
002C87B0    sb v0,0x90(sp)
002C87B4    lwc1 f00,0x3FC(s3)
002C87B8    mul.s f00,f03,f00
002C87BC    mul.s f00,f00,f04
002C87C0    cvt.w.s f01,f00
002C87C4    mfc1 v0,f01
002C87C8    sb v0,0x91(sp)
002C87CC    lwc1 f00,0x404(s3)
002C87D0    mul.s f00,f03,f00
002C87D4    mul.s f00,f00,f04
002C87D8    cvt.w.s f01,f00
002C87DC    mfc1 v0,f01
002C87E0    sb v0,0x92(sp)
002C87E4    lwc1 f00,0x30(a3)
002C87E8    sub.s f00,f00,f05
002C87EC    lwc1 f01,-0x55F0(gp)
002C87F0    mul.s f00,f00,f01
002C87F4    cvt.w.s f01,f00
002C87F8    mfc1 v0,f01
002C87FC    andi v0,v0,0x3FFF
002C8800    sll v0,v0,0x02
002C8804    addu v1,v0,s1
002C8808    lwc1 f01,0x0(v1)
002C880C    addu v0,v0,s0
002C8810    lwc1 f02,0x0(v0)
002C8814    lwc1 f00,0x38(a3)
002C8818    mul.s f00,f02,f00
002C881C    swc1 f00,0x4C(sp)
002C8820    lqc2 vf04,0x0(t7)
002C8824    vmulw.xyz vf07,vf04,vf04w
002C8828    sqc2 vf07,0x0(t3)
002C882C    ld v0,0xC0(sp)
002C8830    sd v0,0xB0(sp)
002C8834    ld v0,0xC8(sp)
002C8838    sd v0,0xB8(sp)
002C883C    lwc1 f00,0x38(a3)
002C8840    mul.s f00,f01,f00
002C8844    swc1 f00,0x5C(sp)
002C8848    lqc2 vf04,0x0(t6)
002C884C    vmulw.xyz vf07,vf04,vf04w
002C8850    sqc2 vf07,0x0(t2)
002C8854    ld v0,0xD0(sp)
002C8858    sd v0,0xC0(sp)
002C885C    ld v0,0xD8(sp)
002C8860    sd v0,0xC8(sp)
002C8864    lqc2 vf04,0x0(t1)
002C8868    lqc2 vf05,0x0(t3)
002C886C    vadd.xyz vf07, vf04, vf05
002C8870    sqc2 vf07,0x0(t2)
002C8874    ld v1,0xD0(sp)
002C8878    sd v1,0xA0(sp)
002C887C    ld v0,0xD8(sp)
002C8880    sd v0,0xA8(sp)
002C8884    sd v1,0x70(sp)
002C8888    sd v0,0x78(sp)
002C888C    lwc1 f00,0x38(a3)
002C8890    neg.s f00,f00
002C8894    mul.s f00,f00,f01
002C8898    swc1 f00,0x4C(sp)
002C889C    lqc2 vf04,0x0(t7)
002C88A0    vmulw.xyz vf07,vf04,vf04w
002C88A4    sqc2 vf07,0x0(t3)
002C88A8    ld v0,0xC0(sp)
002C88AC    sd v0,0xB0(sp)
002C88B0    ld v0,0xC8(sp)
002C88B4    sd v0,0xB8(sp)
002C88B8    lwc1 f00,0x38(a3)
002C88BC    mul.s f00,f02,f00
002C88C0    swc1 f00,0x5C(sp)
002C88C4    lqc2 vf04,0x0(t6)
002C88C8    vmulw.xyz vf07,vf04,vf04w
002C88CC    sqc2 vf07,0x0(t2)
002C88D0    ld v0,0xD0(sp)
002C88D4    sd v0,0xC0(sp)
002C88D8    ld v0,0xD8(sp)
002C88DC    sd v0,0xC8(sp)
002C88E0    lqc2 vf04,0x0(t1)
002C88E4    lqc2 vf05,0x0(t3)
002C88E8    vadd.xyz vf07, vf04, vf05
002C88EC    sqc2 vf07,0x0(t2)
002C88F0    ld v1,0xD0(sp)
002C88F4    sd v1,0xA0(sp)
002C88F8    ld v0,0xD8(sp)
002C88FC    sd v0,0xA8(sp)
002C8900    sd v1,0x80(sp)
002C8904    sd v0,0x88(sp)
002C8908    addiu a0,a3,0x10
002C890C    lqc2 vf04,0x0(a0)
002C8910    lqc2 vf05,0x0(t5)
002C8914    vsub.xyz vf07, vf04, vf05
002C8918    sqc2 vf07,0x0(t1)
002C891C    ld v1,0xB0(sp)
002C8920    sd v1,0xA0(sp)
002C8924    ld v0,0xB8(sp)
002C8928    sd v0,0xA8(sp)
002C892C    sd v1,0x0(a2)
002C8930    ld v0,0xA8(sp)
002C8934    sd v0,0x8(a2)
002C8938    addiu a2,a2,0x10
002C893C    lqc2 vf04,0x0(a0)
002C8940    lqc2 vf05,0x0(t4)
002C8944    vadd.xyz vf07, vf04, vf05
002C8948    sqc2 vf07,0x0(t1)
002C894C    ld v1,0xB0(sp)
002C8950    sd v1,0xA0(sp)
002C8954    ld v0,0xB8(sp)
002C8958    sd v0,0xA8(sp)
002C895C    sd v1,0x0(a2)
002C8960    ld v0,0xA8(sp)
002C8964    sd v0,0x8(a2)
002C8968    addiu a2,a2,0x10
002C896C    lqc2 vf04,0x0(a0)
002C8970    lqc2 vf05,0x0(t4)
002C8974    vsub.xyz vf07, vf04, vf05
002C8978    sqc2 vf07,0x0(t1)
002C897C    ld v1,0xB0(sp)
002C8980    sd v1,0xA0(sp)
002C8984    ld v0,0xB8(sp)
002C8988    sd v0,0xA8(sp)
002C898C    sd v1,0x0(a2)
002C8990    ld v0,0xA8(sp)
002C8994    sd v0,0x8(a2)
002C8998    addiu a2,a2,0x10
002C899C    lqc2 vf04,0x0(a0)
002C89A0    lqc2 vf05,0x0(t5)
002C89A4    vadd.xyz vf07, vf04, vf05
002C89A8    sqc2 vf07,0x0(t1)
002C89AC    ld v1,0xB0(sp)
002C89B0    sd v1,0xA0(sp)
002C89B4    ld v0,0xB8(sp)
002C89B8    sd v0,0xA8(sp)
002C89BC    sd v1,0x0(a2)
002C89C0    ld v0,0xA8(sp)
002C89C4    sd v0,0x8(a2)
002C89C8    lwl v0,0x93(sp)
002C89CC    lwr v0,0x90(sp)
002C89D0    swl v0,0x3(t0)
002C89D4    swr v0,0x0(t0)
002C89D8    addiu t0,t0,0x4
002C89DC    lwl v0,0x93(sp)
002C89E0    lwr v0,0x90(sp)
002C89E4    swl v0,0x3(t0)
002C89E8    swr v0,0x0(t0)
002C89EC    addiu t0,t0,0x4
002C89F0    lwl v0,0x93(sp)
002C89F4    lwr v0,0x90(sp)
002C89F8    swl v0,0x3(t0)
002C89FC    swr v0,0x0(t0)
002C8A00    lwl v0,0x93(sp)
002C8A04    lwr v0,0x90(sp)
002C8A08    swl v0,0x7(t0)
002C8A0C    swr v0,0x4(t0)
002C8A10    lw a3,0x0(a3)
002C8A14    bnel a3,zero,0x002C8770

That's for PAL version. For NTSC it's 0x2CB518-0x2CB7BC, but I mostly do my testings on the former, because it's the one I usually have at hand and because it supports 60Hz anyways. Speaking of which, the glitch is apparently capable of being MUCH worse in the 50Hz mode, like visuals turning into a mess of colored rectangles rather than just flashes of blue light.

So far I've come up with two ways of dealing with the issue, sadly neither of them is ideal:

1. Use the 0x0F command (actually just 0x27 is enough, 0x26 doesn't seem to affect anything) on the range above: reduces those flashes significantly - if you're lucky you won't see a single one, but it's random and sometimes it would still flicker for me during tests once or twice.

2. NOP the last instruction using 0x0A command and skip that section altogether: this gets rid of flashes completely, but will break a visual effect that's used in at least one another cutscene (can be seen in the video in my previous post at 5:53:07, looks like glowing purple spheres) making it almost invisible.

Well, considering that the game already has tons of smaller glitches (mostly texture flickering, nothing as severe as that flashing) caused by calcualtion inaccuracies, perhaps the first option isn't too bad…

Maybe something better could be achieved with commands 0x11 or 0x12, but I haven't had much time to take a closer look at them yet; I'm planning to, eventually, though they sure look a bit intimidating for a total noob like me. :D
Nice find! Try to additionally use command 0x10 for the same range as it deals with mul/div instruction accuracy. If that does not improve anything, you can also use command 0x0E on the specific add/sub instructions to see if that makes any difference. Making entire functions accurate can sometimes negatively impact them, so it can be finicky dealing with them. Hopefully one of these can fix the issue completely.
 
Can you guys fix Harry Potter 2 (CechC08) Pal60gb? There are some glitching textures when you are in the castle for example, when you are far away they appear black when you are near everything's ok, there's also times when you open a door and the character just walks &walks and then goes through textures (but there are ways to get through that) as far as i remember there were no such things in the netemu - the config fixes that game on it
 
Nice find! Try to additionally use command 0x10 for the same range as it deals with mul/div instruction accuracy. If that does not improve anything, you can also use command 0x0E on the specific add/sub instructions to see if that makes any difference. Making entire functions accurate can sometimes negatively impact them, so it can be finicky dealing with them. Hopefully one of these can fix the issue completely.
Oh, I apologize, it looks like I forgot to add that part to my post! Actually, I already tried using 0x10, but admittedly just that alone, without 0x0F. It didn't seem to do anything on its own, and the reason I stopped experimenting with it was because it unfortunately turns the game into a slideshow whenever that part of the code runs (e.g. not just during that cutscene, but also whenever you activate a generator, and probably for some other events).

I'll try using 0x0E, but I suppose it can't be used for VADD/VSUB instructions? I suspected the VMUL instructions specifically being the culprit here, because I remember my first strategy still mostly working if I shortened my range to include just all of the VADD/VSUB instructions that command 0x27 apparently works with. Basically, that's also why I thought that maybe I should try looking into some other VU0-related commands next, but I might be totally wrong with my understanding of these things, of course.

And yeah, definitely have to be careful, because during my test some of my attempts would even break an important NPC's AI: at best he would just position himself awkwardly, but at worst he would get stuck, essentially softlocking the game, as he's needed to finish the level, lol.
 
Can you take a look at this attempt to port the netemu config to gx_emu?
SLUS_200.16 Evergrace
Code:
00 00 00 1B E1 1D B1 0D 00 34 11 78 00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 00 00 34 11 90 00 00 00 03 00 00 00 00 00 0F FF C0 00 00 00 00 8F 82 92 C0 00 00 00 00 14 40 00 04 00 00 00 00 00 0F FF CC 00 00 00 00 80 79 00 01 00 00 00 00 14 19 FF FE 00 00 00 00 00 0F FF D8 00 00 00 00 03 E0 00 08 00 00 00 00 08 03 FF F0 03 E0 00 08
 
Last edited:
Constantine (SLUS-21142)
Code:
3D 00 00 00 57 44 00 00 0A 00 00 00 01 00 00 00
84 A5 33 00 0E 00 40 10 00 00 00 00
Skips check due to inaccurate math and allows player to climb dumpster in level 2.

All credits to kozarovv for finding this. This is untested on PS3, but works fine on PCSX2.
Thank you!
 
Actually, I already tried using 0x10, but admittedly just that alone, without 0x0F. It didn't seem to do anything on its own, and the reason I stopped experimenting with it was because it unfortunately turns the game into a slideshow whenever that part of the code runs (e.g. not just during that cutscene, but also whenever you activate a generator, and probably for some other events).
Definitely try both 0x26 and 0x10 as PCSX2's div hack is pretty much command 0x10. It may be slow, but we can at least see if it is fully working or not.

Otherwise, feel free to post your memory card and we can take a look at it!
 
Definitely try both 0x26 and 0x10 as PCSX2's div hack is pretty much command 0x10. It may be slow, but we can at least see if it is fully working or not.
Yeah, it's weird, 0x26 + 0x10 doesn't seem to do much, aside from making the game run at about 3 FPS: the flashing is just as bad as without config, unless I also add either 0x27 or use 0x0F + 0x10 instead, but in that case it just works almost the same with 0x27 alone, i.e. makes flashes less prominent, but doesn't get rid of them completely.
In fact, because the game runs so much slower with 0x10 active, those flashes become even more noticeable than with a config with nothing more than 0x27 (such one usually looks almost comletely fixed).
Does PCSX2's div hack affect VU0 operations as well? Psdev wiki says that one of the modes for 0x12 is essentially 0x10, but for VU0 opcodes, so maybe that could help? I would try, but I'm not yet sure how to use that complex command properly…

Here's the memcard with all levels unlocked that I use with PCSX2, and I also included two savestates for both PAL and NTSC versions there:
https://gofile.io/d/6m3pYz
The level with that broken cutscene is called "Powers of Levitation". Unfortunately, the game doesn't allow saving mid-level, and the cutscene in question triggers at the very end, meaning that it's required to play the whole level from start to finish to see it. If you're not familiar with the game, the video I linked earlier should show how to beat it, but doing this every time sure gets annoying even when you know what to do. (

Thank you so much for trying to help me!
 

Similar threads

Back
Top