PS4 [Research]PS2 emulator configuration on PS4

Can someone tell me how to make Grandia III work it's multidisc and doesn't work with PS2FPKG.

i managed to go on last boss here on Grandia III (multidisk mode) sometimes it crash mostly on battle mode. but cant finished because it always crash when last boss is weak.


------
where is the redfaction1 emu files.? tnx. hope you always inlclude the link on different emu so we can help you try different games on different emu.
 
Was test on four emus! (Bully v.2, KOF2000, red faction 1, Jak v.2)

Result same, stuck at loading screen! Just for info...
Same behaviour in THUG2...sadly

Edit: I will test some other emus. I think it's the same problem you have in GUN.
 
Last edited:
i managed to go on last boss here on Grandia III (multidisk mode) sometimes it crash mostly on battle mode. but cant finished because it always crash when last boss is weak.


------
where is the redfaction1 emu files.? tnx. hope you always inlclude the link on different emu so we can help you try different games on different emu.

Can you tell me what you did to make a working FPKG for Grandia 3? Doesn't work for me.
 
Thanks to kozarovv for patches.
I made pnach cheats for ignore signal and loading freeze in games.
Every game works good in PCSX2 (v1 r.5350), but THAW, GUN games did not work in the ps4 emu (stopped at finish at loading bar), need assistanse for cli options testing.
Now WIP THUG2 splash screen. I think I'll get over it soon.

NOTE: Here is log from PCSX2 with patches. I'm not an expert in PS2 emulation, but as far as I understand it has to do with cache overflow and branch scatter.
Small research about problem here: https://github.com/pcsx2/pcsx2/issues/43
Maybe it will give someone something to think about.
Code:
microVU0: Cached Prog = [002] [PC=0458] [List=01] (Cache=0.054%) [0.0mb]
microVU0: Cached Prog = [003] [PC=0b60] [List=01] (Cache=0.080%) [0.0mb]
Pagesplit @ 001D1FFC : size=1 insts
Protected page @ 0x001d6
Protected page @ 0x001a8
microVU1: Cached Prog = [009] [PC=0040] [List=02] (Cache=0.022%) [0.0mb]
microVU1: Cached Prog = [010] [PC=03f0] [List=01] (Cache=0.022%) [0.0mb]
microVU1: Cached Prog = [011] [PC=01c0] [List=01] (Cache=0.022%) [0.0mb]
microVU1: Cached Prog = [012] [PC=01e0] [List=01] (Cache=0.022%) [0.0mb]
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = b10
microVU1: Cached Prog = [013] [PC=0a00] [List=01] (Cache=0.022%) [0.0mb]
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = b10
microVU1: Cached Prog = [014] [PC=2008] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3000]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3000]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3000]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [015] [PC=3410] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [016] [PC=2ff0] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3000]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [017] [PC=3008] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3090]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [018] [PC=3080] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3090]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [019] [PC=3098] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3120]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [020] [PC=3540] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [021] [PC=34d0] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [022] [PC=3110] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3120]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [023] [PC=3128] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [31b0]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [024] [PC=31a0] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [31b0]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [025] [PC=31b8] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3240]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [026] [PC=3230] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3240]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [027] [PC=3248] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [32d0]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [028] [PC=32c0] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [32d0]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [029] [PC=32d8] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [030] [PC=1888] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [031] [PC=0d40] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [032] [PC=0eb0] [List=01] (Cache=0.436%) [0.3mb]
microVU1: BAL in IBNE delay slot! [31b0]  - If game broken report to PCSX2 Team
recVifUnpk: Bucket 0x2c01 has 4 micro-programs
microVU1: BAL in IBNE delay slot! [3120]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [033] [PC=36e0] [List=01] (Cache=0.455%) [0.3mb]
microVU1: BAL in IBNE delay slot! [3090]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3090]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [034] [PC=3678] [List=01] (Cache=0.455%) [0.3mb]
microVU1: BAL in IBNE delay slot! [32d0]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [32d0]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3120]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [31b0]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3240]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [035] [PC=0240] [List=01] (Cache=0.469%) [0.3mb]
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = b10
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = b10
microVU1: D-bit set! PC = b10
microVU1: D-bit set! PC = b10
microVU1: Cached Prog = [036] [PC=0438] [List=01] (Cache=0.708%) [0.4mb]

SLUS212.95 - THAW
apiRequest(1.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
eeObj.WriteMem32(0x000fffc0,0x0c070fea)
eeObj.WriteMem32(0x000fffc4,0x24186000)
eeObj.WriteMem32(0x000fffc8,0x3c191200)
eeObj.WriteMem32(0x000fffcc,0x37391010)
eeObj.WriteMem32(0x000fffd0,0x2718ffff)
eeObj.WriteMem32(0x000fffd4,0x1418fffe)
eeObj.WriteMem32(0x000fffdc,0x080a9a5c)
eeObj.WriteMem32(0x000fffe0,0xaf200000)
eeObj.WriteMem32(0x002a6968,0x0803fff0)
eeObj.WriteMem32(0x000fff90,0x0c070fea)
eeObj.WriteMem32(0x000fff94,0x24186000)
eeObj.WriteMem32(0x000fff98,0x3c191200)
eeObj.WriteMem32(0x000fff9c,0x37391010)
eeObj.WriteMem32(0x000fffa0,0x2718ffff)
eeObj.WriteMem32(0x000fffa4,0x1418fffe)
eeObj.WriteMem32(0x000fffac,0x0807100a)
eeObj.WriteMem32(0x000fffb0,0xaf200000)
eeObj.WriteMem32(0x001c4020,0x0803ffe4)
eeObj.WriteMem32(0x00493b30,0xd3400000)
end
gametitle=THAW
patch=1,EE,000fffc0,word,0c070fea
patch=1,EE,000fffc4,word,24187000
patch=1,EE,000fffc8,word,3c191200
patch=1,EE,000fffcc,word,37391010
patch=1,EE,000fffd0,word,2718ffff
patch=1,EE,000fffd4,word,1418fffe
patch=1,EE,000fffdc,word,080a9a5c
patch=1,EE,000fffe0,word,af200000
patch=1,EE,002a6968,word,0803fff0
patch=1,EE,000fff90,word,0c070fea
patch=1,EE,000fff94,word,24187000
patch=1,EE,000fff98,word,3c191200
patch=1,EE,000fff9c,word,37391010
patch=1,EE,000fffa0,word,2718ffff
patch=1,EE,000fffa4,word,1418fffe
patch=1,EE,000fffac,word,0807100a
patch=1,EE,000fffb0,word,af200000
patch=1,EE,001c4020,word,0803ffe4
patch=1,EE,00493b30,word,d3400000

SLUS211.39 - GUN
apiRequest(1.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
eeObj.WriteMem32(0x000fffc0,0x0c067f36)
eeObj.WriteMem32(0x000fffc4,0x24186000)
eeObj.WriteMem32(0x000fffc8,0x3c191200)
eeObj.WriteMem32(0x000fffcc,0x37391010)
eeObj.WriteMem32(0x000fffd0,0x2718ffff)
eeObj.WriteMem32(0x000fffd4,0x1418fffe)
eeObj.WriteMem32(0x000fffdc,0x08067ef1)
eeObj.WriteMem32(0x000fffe0,0xaf200000)
eeObj.WriteMem32(0x0019fbbc,0x0803fff0)
eeObj.WriteMem32(0x004738c0,0xd3400000)
eeObj.WriteMem32(0x00194938,0x16340005) -- get out from cycle
end
emuObj.AddVsyncHook(patcher)
gametitle=GUN
patch=1,EE,000fffc0,word,0c067f36
patch=1,EE,000fffc4,word,24186000
patch=1,EE,000fffc8,word,3c191200
patch=1,EE,000fffcc,word,37391010
patch=1,EE,000fffd0,word,2718ffff
patch=1,EE,000fffd4,word,1418fffe
patch=1,EE,000fffdc,word,08067ef1
patch=1,EE,000fffe0,word,af200000
patch=1,EE,0019fbbc,word,0803fff0
patch=1,EE,004738c0,word,d3400000
patch=1,EE,00194928,word,16340005

SLUS209.65 - THUG2
apiRequest(1.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
eeObj.WriteMem32(0x000fffc0,0x0c065266)
eeObj.WriteMem32(0x000fffc4,0x24186000)
eeObj.WriteMem32(0x000fffc8,0x3c191200)
eeObj.WriteMem32(0x000fffcc,0x37391010)
eeObj.WriteMem32(0x000fffd0,0x2718ffff)
eeObj.WriteMem32(0x000fffd4,0x1418fffe)
eeObj.WriteMem32(0x000fffdc,0x08065248)
eeObj.WriteMem32(0x000fffe0,0xaf200000)
eeObj.WriteMem32(0x00194910,0x0803fff0)
eeObj.WriteMem32(0x003f0fe8,0xd3400000)
eeObj.WriteMem32(0x0026ff38,0x00000000) -- nop
end
emuObj.AddVsyncHook(patcher)
gametitle=THUG2
patch=1,EE,000fffc0,word,0c065266
patch=1,EE,000fffc4,word,24186000
patch=1,EE,000fffc8,word,3c191200
patch=1,EE,000fffcc,word,37391010
patch=1,EE,000fffd0,word,2718ffff
patch=1,EE,000fffd4,word,1418fffe
patch=1,EE,000fffdc,word,08065248
patch=1,EE,000fffe0,word,af200000
patch=1,EE,00194910,word,0803fff0
patch=1,EE,003f0fe8,word,d3400000
patch=1,EE,0026ff38,word,00000000
 
Last edited:
NOTE: Here is log from PCSX2 with patches. I'm not an expert in PS2 emulation, but as far as I understand it has to do with cache overflow and branch scatter.
Small research about problem here: https://github.com/pcsx2/pcsx2/issues/43
Maybe it will give someone something to think about.

Patch that write 0xd3400000 is replacement for nearest rounding in THPS engine, so that shouldn't be issue.
microVU1: BAL in IBNE delay slot! [32d0] - If game broken report to PCSX2 Team
I'm pretty sure that emu handle evil branches by default, but you can add --vu-evil-branches=1 to cli.
Other messages in that log are just standard info.
 
Last edited:
Thanks to kozarovv for patches.
I made pnach cheats for ignore signal and loading freeze in games.
Every game works good in PCSX2 (v1 r.5350), but THAW, GUN games did not work in the ps4 emu (stopped at finish at loading bar), need assistanse for cli options testing.
Now WIP THUG2 splash screen. I think I'll get over it soon.

NOTE: Here is log from PCSX2 with patches. I'm not an expert in PS2 emulation, but as far as I understand it has to do with cache overflow and branch scatter.
Small research about problem here: https://github.com/pcsx2/pcsx2/issues/43
Maybe it will give someone something to think about.
Code:
microVU0: Cached Prog = [002] [PC=0458] [List=01] (Cache=0.054%) [0.0mb]
microVU0: Cached Prog = [003] [PC=0b60] [List=01] (Cache=0.080%) [0.0mb]
Pagesplit @ 001D1FFC : size=1 insts
Protected page @ 0x001d6
Protected page @ 0x001a8
microVU1: Cached Prog = [009] [PC=0040] [List=02] (Cache=0.022%) [0.0mb]
microVU1: Cached Prog = [010] [PC=03f0] [List=01] (Cache=0.022%) [0.0mb]
microVU1: Cached Prog = [011] [PC=01c0] [List=01] (Cache=0.022%) [0.0mb]
microVU1: Cached Prog = [012] [PC=01e0] [List=01] (Cache=0.022%) [0.0mb]
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = b10
microVU1: Cached Prog = [013] [PC=0a00] [List=01] (Cache=0.022%) [0.0mb]
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = b10
microVU1: Cached Prog = [014] [PC=2008] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3000]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3000]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3000]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [015] [PC=3410] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [016] [PC=2ff0] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3000]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [017] [PC=3008] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3090]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [018] [PC=3080] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3090]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [019] [PC=3098] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3120]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [020] [PC=3540] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [021] [PC=34d0] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [022] [PC=3110] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3120]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [023] [PC=3128] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [31b0]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [024] [PC=31a0] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [31b0]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [025] [PC=31b8] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3240]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [026] [PC=3230] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [3240]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [027] [PC=3248] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [32d0]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [028] [PC=32c0] [List=01] (Cache=0.315%) [0.2mb]
microVU1: BAL in IBNE delay slot! [32d0]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [029] [PC=32d8] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [030] [PC=1888] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [031] [PC=0d40] [List=01] (Cache=0.315%) [0.2mb]
microVU1: Cached Prog = [032] [PC=0eb0] [List=01] (Cache=0.436%) [0.3mb]
microVU1: BAL in IBNE delay slot! [31b0]  - If game broken report to PCSX2 Team
recVifUnpk: Bucket 0x2c01 has 4 micro-programs
microVU1: BAL in IBNE delay slot! [3120]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [033] [PC=36e0] [List=01] (Cache=0.455%) [0.3mb]
microVU1: BAL in IBNE delay slot! [3090]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3090]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [034] [PC=3678] [List=01] (Cache=0.455%) [0.3mb]
microVU1: BAL in IBNE delay slot! [32d0]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [32d0]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3120]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [31b0]  - If game broken report to PCSX2 Team
microVU1: BAL in IBNE delay slot! [3240]  - If game broken report to PCSX2 Team
microVU1: Cached Prog = [035] [PC=0240] [List=01] (Cache=0.469%) [0.3mb]
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = b10
microVU1: D-bit set! PC = ab8
microVU1: Branch Optimization
microVU1: D-bit set! PC = b10
microVU1: D-bit set! PC = b10
microVU1: D-bit set! PC = b10
microVU1: Cached Prog = [036] [PC=0438] [List=01] (Cache=0.708%) [0.4mb]

SLUS212.95 - THAW
apiRequest(1.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
eeObj.WriteMem32(0x000fffc0,0x0c070fea)
eeObj.WriteMem32(0x000fffc4,0x24186000)
eeObj.WriteMem32(0x000fffc8,0x3c191200)
eeObj.WriteMem32(0x000fffcc,0x37391010)
eeObj.WriteMem32(0x000fffd0,0x2718ffff)
eeObj.WriteMem32(0x000fffd4,0x1418fffe)
eeObj.WriteMem32(0x000fffdc,0x080a9a5c)
eeObj.WriteMem32(0x000fffe0,0xaf200000)
eeObj.WriteMem32(0x002a6968,0x0803fff0)
eeObj.WriteMem32(0x000fff90,0x0c070fea)
eeObj.WriteMem32(0x000fff94,0x24186000)
eeObj.WriteMem32(0x000fff98,0x3c191200)
eeObj.WriteMem32(0x000fff9c,0x37391010)
eeObj.WriteMem32(0x000fffa0,0x2718ffff)
eeObj.WriteMem32(0x000fffa4,0x1418fffe)
eeObj.WriteMem32(0x000fffac,0x0807100a)
eeObj.WriteMem32(0x000fffb0,0xaf200000)
eeObj.WriteMem32(0x001c4020,0x0803ffe4)
eeObj.WriteMem32(0x00493b30,0xd3400000)
end


So THUG2 is
gametitle=THAW
patch=1,EE,000fffc0,word,0c070fea
patch=1,EE,000fffc4,word,24187000
patch=1,EE,000fffc8,word,3c191200
patch=1,EE,000fffcc,word,37391010
patch=1,EE,000fffd0,word,2718ffff
patch=1,EE,000fffd4,word,1418fffe
patch=1,EE,000fffdc,word,080a9a5c
patch=1,EE,000fffe0,word,af200000
patch=1,EE,002a6968,word,0803fff0
patch=1,EE,000fff90,word,0c070fea
patch=1,EE,000fff94,word,24187000
patch=1,EE,000fff98,word,3c191200
patch=1,EE,000fff9c,word,37391010
patch=1,EE,000fffa0,word,2718ffff
patch=1,EE,000fffa4,word,1418fffe
patch=1,EE,000fffac,word,0807100a
patch=1,EE,000fffb0,word,af200000
patch=1,EE,001c4020,word,0803ffe4
patch=1,EE,00493b30,word,d3400000

SLUS211.39 - GUN
apiRequest(1.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
eeObj.WriteMem32(0x000fffc0,0x0c067f36)
eeObj.WriteMem32(0x000fffc4,0x24186000)
eeObj.WriteMem32(0x000fffc8,0x3c191200)
eeObj.WriteMem32(0x000fffcc,0x37391010)
eeObj.WriteMem32(0x000fffd0,0x2718ffff)
eeObj.WriteMem32(0x000fffd4,0x1418fffe)
eeObj.WriteMem32(0x000fffdc,0x08067ef1)
eeObj.WriteMem32(0x000fffe0,0xaf200000)
eeObj.WriteMem32(0x0019fbbc,0x0803fff0)
eeObj.WriteMem32(0x004738c0,0xd3400000)
eeObj.WriteMem32(0x00194938,0x16340005) -- get out from cycle
end
emuObj.AddVsyncHook(patcher)
gametitle=GUN
patch=1,EE,000fffc0,word,0c067f36
patch=1,EE,000fffc4,word,24186000
patch=1,EE,000fffc8,word,3c191200
patch=1,EE,000fffcc,word,37391010
patch=1,EE,000fffd0,word,2718ffff
patch=1,EE,000fffd4,word,1418fffe
patch=1,EE,000fffdc,word,08067ef1
patch=1,EE,000fffe0,word,af200000
patch=1,EE,0019fbbc,word,0803fff0
patch=1,EE,004738c0,word,d3400000
patch=1,EE,00194928,word,16340005

SLUS209.65 - THUG2
apiRequest(1.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
eeObj.WriteMem32(0x000fffc0,0x0c065266)
eeObj.WriteMem32(0x000fffc4,0x24186000)
eeObj.WriteMem32(0x000fffc8,0x3c191200)
eeObj.WriteMem32(0x000fffcc,0x37391010)
eeObj.WriteMem32(0x000fffd0,0x2718ffff)
eeObj.WriteMem32(0x000fffd4,0x1418fffe)
eeObj.WriteMem32(0x000fffdc,0x08065248)
eeObj.WriteMem32(0x000fffe0,0xaf200000)
eeObj.WriteMem32(0x00194910,0x0803fff0)
eeObj.WriteMem32(0x003f0fe8,0xd3400000)
eeObj.WriteMem32(0x0026ff38,0x00000000) -- nop
end
emuObj.AddVsyncHook(patcher)
gametitle=THUG2
patch=1,EE,000fffc0,word,0c065266
patch=1,EE,000fffc4,word,24186000
patch=1,EE,000fffc8,word,3c191200
patch=1,EE,000fffcc,word,37391010
patch=1,EE,000fffd0,word,2718ffff
patch=1,EE,000fffd4,word,1418fffe
patch=1,EE,000fffdc,word,08065248
patch=1,EE,000fffe0,word,af200000
patch=1,EE,00194910,word,0803fff0
patch=1,EE,003f0fe8,word,d3400000
patch=1,EE,0026ff38,word,00000000

I tried some of the not so common emus for THUG2 like NeoGeo, MSLUG, Primal, StarOcean3 and stuff like that. Still nothing. So I guess this problem really needs to be addressed in code.

When it comes to games that start up and freeze at the end of the loading process. There is at least chance that switching emus or messing around with scalar values, disable MTVU, delay VIF stall, etc. can help.
 
Code for Dark Cloud (SCUS_971.11 only) that i initially created for PCSX2. I hope PS4 have enough horse power to run that. :P

Txt (from official classic)
Code:
--fpu-accurate-muldiv-range=0x14dd90,0x14e080
--fpu-accurate-mul-fast=1
--fpu-accurate-range=0x01dabd00,0x02000000
--cop2-accurate-range=0x01dabd00,0x02000000
--gs-motion-factor=25
Lua
Code:
apiRequest(1.0)

local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()

-- CNP draw distance
eeObj.WriteMem32(0x156554,0x00000000)
eeObj.WriteMem32(0x156678,0x3C1943C0)
eeObj.WriteMem32(0x156684,0xAC990CEC)
eeObj.WriteMem32(0x1729DC,0x00000000)
eeObj.WriteMem32(0x155FF0,0x00000000)

-- LOD Distance
eeObj.WriteMem32(0x157364,0x10000006)

-- Shade
eeObj.WriteMem32(0x1A3E80,0xC6800004)

-- Additional Shade
eeObj.WriteMem32(0x1A3D80,0xC6800004)

-- Depth of Field
eeObj.WriteMem32(0x17BD10,0x00000000)

end

emuObj.AddVsyncHook(patcher)

Lua eliminate texture/npc/shade popup that game have even on ps2. Additionally patch remove Depth of Field effect that is blurry without CRT.
Few compare pics. Before vs. after.

pcsx2 2021-03-20 09-05-18.png pcsx2 2021-03-20 09-05-35.png
pcsx2 2021-03-20 09-06-12.png pcsx2 2021-03-20 09-06-26.png
pcsx2 2021-03-20 09-07-19.png pcsx2 2021-03-20 09-07-35.png
 
Maybe I did something wrong because I'm a noob at PS2 on PS4 but I used FPKG 0.6 on Secret Agent Clank, the game works fine but if I save and leave and go back the save is corrupted but it loads the save after that however there's a loading screen that's a ship flying and it just loads forever. This only happens if I had a save if I delete the save the game plays.
 
Maybe I did something wrong because I'm a noob at PS2 on PS4 but I used FPKG 0.6 on Secret Agent Clank, the game works fine but if I save and leave and go back the save is corrupted but it loads the save after that however there's a loading screen that's a ship flying and it just loads forever. This only happens if I had a save if I delete the save the game plays.

I'm not all that familiar with ps2 on the ps4 (only done one game, which worked fine), but I know that there are a few emulators, and some behave better with certain games than others. the two main ones I know of are rogue galaxy and Jak and Daxter's. you might try the other one. I think those two offer the best compatibility, but like I said, I'm not all that familiar with it.
 
Hi! Want report about Mafia game! Looks like now it have same issue as on ps3! On ps3 game was freeze at missons "Molotov Party" and "The Priest". It was fixed by config for ps3! On ps4 game crash before "Molotov Party" misson (on loading screen). i know now able to play the remake of Mafia :flustered: even on 5.05 but original game still nice! Maybe @kozarovv or @mrjaredbeta or @Manu Mx will do something with it? Im test many emus, wide and non wide version and config from ps3 - same crash before Molotov Party misson. But if no help, anyway its look playble in FreeRide mode, just for INFO...
 
Maybe I did something wrong because I'm a noob at PS2 on PS4 but I used FPKG 0.6 on Secret Agent Clank, the game works fine but if I save and leave and go back the save is corrupted but it loads the save after that however there's a loading screen that's a ship flying and it just loads forever. This only happens if I had a save if I delete the save the game plays.

Can anyone else answer I appreciate godreborn's response but even he admitted he's not all that familar with the emulator. Why am I getting corrupted saves?
 
Need for Speed: ProStreet (SLUS-21658)
LUA
Code:
apiRequest(1.0)

local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()
eeObj.WriteMem32(0x00167e2c,0x00000000)
end

emuObj.AddVsyncHook(patcher)


Need for Speed: Undercover (SLUS-21801)

LUA
Code:
apiRequest(1.0)

local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()
eeObj.WriteMem32(0x00265820,0x10000004)
eeObj.WriteMem32(0x00266408,0x10000003)
end

emuObj.AddVsyncHook(patcher)
Untested fixes for low frame rate.
 
Need for Speed: ProStreet (SLUS-21658)
LUA
Code:
apiRequest(1.0)

local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()
eeObj.WriteMem32(0x00167e2c,0x00000000)
end

emuObj.AddVsyncHook(patcher)


Need for Speed: Undercover (SLUS-21801)

LUA
Code:
apiRequest(1.0)

local eeObj = getEEObject()
local emuObj = getEmuObject()

local patcher = function()
eeObj.WriteMem32(0x00265820,0x10000004)
eeObj.WriteMem32(0x00266408,0x10000003)
end

emuObj.AddVsyncHook(patcher)
Untested fixes for low frame rate.
Both games have been tested and there is still a slight lag, I think they should be perfect if they are further debugged using scalar.I checked the offset address by the way and nothing has changed, @mrjaredbeta's code should work for all versions.
 
Last edited:

Similar threads

Back
Top