PS4 [Research]PS2 emulator configuration on PS4

Modified fix for Grand Theft Auto Liberty City Stories

CLI
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--gs-h2l-list-opt=1
--gs-h2l-accurate-hash=1
--gs-adaptive-frameskip=1

--vu0-mpg-cycles=200
--vu1-mpg-cycles=200

--ee-cycle-scalar=0.8

Emu used=Jakx v2

99% of all lag and stutter eliminated so far. Almost unnoticeable unless wearing headphones

added to TXT
Code:
--force-frame-blend=1

LUA PAL
Code:
--gametitle=Grand Theft Auto Liberty City Stories (SLES-54135)
--JakX v2

apiRequest(1.0)

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

local patcher = function()

--no interlace
eeObj.WriteMem32(0x2035F394,0x00000000)

--Infinite Run by Codejunkies
eeObj.WriteMem32(0x20349058,0x00000000)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

LUA NTSC
Code:
--gametitle=Grand Theft Auto Liberty City Stories (SLUS-21423)
--JakX v2

apiRequest(1.0)

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

local patcher = function()

-- Widescreen fix by nemesis2000 (pnach by nemesis2000)
eeObj.WriteMem32(0x202918D0,0x468010A0)
eeObj.WriteMem32(0x202918D4,0xC6650030)
eeObj.WriteMem32(0x202918D8,0x44830800)
eeObj.WriteMem32(0x202918DC,0x46800860)
eeObj.WriteMem32(0x202918E0,0xC6640034)
eeObj.WriteMem32(0x202918E4,0x44840000)
eeObj.WriteMem32(0x202918E8,0x46800020)
eeObj.WriteMem32(0x202918EC,0xC6630038)
eeObj.WriteMem32(0x202918F0,0x46151082)
eeObj.WriteMem32(0x202918F4,0x46150842)
eeObj.WriteMem32(0x202918F8,0x46150002)
eeObj.WriteMem32(0x202918FC,0x46022940)
eeObj.WriteMem32(0x20291900,0x46012100)
eeObj.WriteMem32(0x20291904,0x460018C0)
eeObj.WriteMem32(0x20291908,0x4615A034)
eeObj.WriteMem32(0x2029190C,0xE6650030)
eeObj.WriteMem32(0x20291910,0xE6640034)
eeObj.WriteMem32(0x20291914,0x45000012)
eeObj.WriteMem32(0x20291918,0xE6630038)
eeObj.WriteMem32(0x2029191C,0x27C2BBF0)
eeObj.WriteMem32(0x20291920,0x24040001)
eeObj.WriteMem32(0x20291924,0x8C431D04)
eeObj.WriteMem32(0x20291928,0x1064000D)
eeObj.WriteMem32(0x2029192C,0x24070096)
eeObj.WriteMem32(0x20291930,0x3C01437F)
eeObj.WriteMem32(0x20291934,0x44810000)
eeObj.WriteMem32(0x20291938,0x2405000B)
eeObj.WriteMem32(0x2029193C,0x4600B002)
eeObj.WriteMem32(0x20291940,0xAE05002C)
eeObj.WriteMem32(0x20291944,0x46000064)
eeObj.WriteMem32(0x20291948,0x44020800)
eeObj.WriteMem32(0x2029194C,0x24420019)
eeObj.WriteMem32(0x20291950,0x28430097)
eeObj.WriteMem32(0x20291954,0x00E3100A)
eeObj.WriteMem32(0x20291958,0x10000007)
eeObj.WriteMem32(0x2029195C,0xAE020028)
eeObj.WriteMem32(0x20291960,0x8E03002C)
eeObj.WriteMem32(0x20291964,0x2402000B)
eeObj.WriteMem32(0x20291968,0x14620003)
eeObj.WriteMem32(0x2029196C,0x2405FFFF)
eeObj.WriteMem32(0x20291970,0xAE00002C)
eeObj.WriteMem32(0x20291974,0xAE050028)
eeObj.WriteMem32(0x20291978,0x0C0A47A2)
eeObj.WriteMem32(0x2029197C,0x0260202D)
eeObj.WriteMem32(0x20291980,0x0C0A47A4)
eeObj.WriteMem32(0x20291984,0x0260202D)
eeObj.WriteMem32(0x20291988,0xC7AC0124)
eeObj.WriteMem32(0x2029198C,0x3C013F9D)
eeObj.WriteMem32(0x20291990,0x44810000)
eeObj.WriteMem32(0x20291994,0x0C0820E8)
eeObj.WriteMem32(0x20291998,0x46006302)

-- Press L1+Up 60fps Enable

if eeObj.ReadMem16(0x0060B942) == 0xFBEF then -- L1+Up
eeObj.WriteMem32(0x202D92C4,0x00000000) --14820017
end

-- Press L1+Down 60fps Disable

if eeObj.ReadMem16(0x0060B942) == 0xFBBF then -- L1+Down
eeObj.WriteMem32(0x202D92C4,0x14820017) --14820017
end

-- no interlace
eeObj.WriteMem32(0x2035F1B4,0x00000000)

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(patcher)

In some areas of city still will be not stable frame rate, but game much playble on PS4 now!
60fps cheat (L1+Up - on, L1+Down - off) work good only on rare locations of game, so better not use it much!

GTA Liberty City Stories PS4 Pro vs. PC! (feat Forelli Redemption MOD)
 
Last edited:
please try to fix this for japanese version, it's on black screen and flashing the video anticipated race license.

Try this,maybe it will help:

#Fix video anticipated race license
--fpu-accurate-muldiv-range=0x00571A90,0x00571A90
--fpu-accurate-muldiv-range=0x00571AB4,0x00571AB4
--fpu-accurate-muldiv-range=0x00571BE0,0x00571BE0
--fpu-accurate-muldiv-range=0x00571C08,0x00571C08
 
Try this,maybe it will help:

#Fix video anticipated race license
--fpu-accurate-muldiv-range=0x00571A90,0x00571A90
--fpu-accurate-muldiv-range=0x00571AB4,0x00571AB4
--fpu-accurate-muldiv-range=0x00571BE0,0x00571BE0
--fpu-accurate-muldiv-range=0x00571C08,0x00571C08

I tested this configuration and the video bug was fixed, but when the game loads the next step of the license, the game crashes and the following message appears.

*** Unhandled PageFault (access violation) ***
C52
Read or Write @ 0x00000080:C5244020
By instrution @ rip=0x00000000:006294A0
Thread :Runtime_EE
 
Made Man - Confessions of the Family Blood (SLUS-21587)

CLI
Code:
--gs-uprender=2x2
--gs-upscale=gpu #<-- Important!

--host-display-mode=16:9
--host-vsync=1
--host-audio-latency=0.045
--ee-hook=0x00232f2c,AdvanceClock,,9000
--ee-evt-check-full=1


--cdvd-sector-read-cycles=3000
LUA
Code:
-- Made Man - Confessions of the Family Blood (U)(SLUS-21587)
-- Widescreen Hack by Arapapa
-- ported to PS4
-- emu used=swjsf v1

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

--emuObj.SetDisplayAspectWide()

local patcher =  function()
--Widescreen hack 16:9
eeObj.WriteMem32(0x00152dd0,0x3c013fab) --0x3c013f80
--Zoom
eeObj.WriteMem32(0x002205d8,0x3c013f20) --0x3c013f00
--Black Bar Fix
eeObj.WriteMem32(0x00100b8c,0x3c010000) --0x3c014420 Bottom
eeObj.WriteMem32(0x00100ba0,0x3c010000) --0x3c014270 Upper
--Black Scene Fix
eeObj.WriteMem32(0x00100e2c,0x3c010000) --0x3c0143f0
--Zoom (Event, Menu)  3F508228
eeObj.WriteMem32(0x001b2e10,0x3c013ee0) --0x3c013f1c
eeObj.WriteMem32(0x001b2e14,0x342180ff) --0x342161ab

emuObj.ThrottleMax()
end
 
emuObj.AddVsyncHook(patcher)

Game will only boot with parappa v1 and Star Wars Jedi Star Fighter v1. Will not boot correctly with "upscale=edgesmooth"

Works flawlessly with config.

PAL Version (SLES54443)

TXT
Code:
--host-display-mode=16:9
--host-vsync=1
--host-audio-latency=0.045
--ee-hook=0x00232E84,AdvanceClock,,9000
--ee-evt-check-full=1


--cdvd-sector-read-cycles=3000

--ps2-lang=system

--gs-upscale=gpu #<-- Important!

LUA
Code:
-- Made Man - Confessions of the Family Blood (E)(SLES-54443)
-- Widescreen Hack by Arapapa
-- ported to PS4
-- emu used=swjsf v1

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

--emuObj.SetDisplayAspectWide()

local patcher =  function()
--Widescreen hack 16:9
--Y-Fov
eeObj.WriteMem32(0x00152e68,0x3c013fab) --3c013f80
--Zoom
eeObj.WriteMem32(0x00220530,0x3c013f20) --3c013f00
--Black Bar Fix
eeObj.WriteMem32(0x00100b8c,0x3c010000) --3c014420 Bottom
eeObj.WriteMem32(0x00100ba0,0x3c010000) --3c014270 Upper
--Black Scene Fix
--f043013c 00a08144 2d200002
eeObj.WriteMem32(0x00100e2c,0x3c010000) --3c0143f0
--Zoom (Event, Menu)  3F508228
eeObj.WriteMem32(0x001B2D70,0x3c013ee0) --0x3c013f1c
eeObj.WriteMem32(0x001B2D74,0x342180ff) --0x342161ab

emuObj.ThrottleMax()
end
 
emuObj.AddVsyncHook(patcher)

Made Man. French Dub Test!

VIDEO

@Kugozx big thanks!
 
Improved fix for Grand Theft Auto™ Liberty City Stories®

CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-adaptive-frameskip=1
--gs-optimize-30fps=1
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--gs-h2l-list-opt=1
--gs-h2l-accurate-hash=1

--force-frame-blend=1
LUA
Code:
-- Grand Theft Auto™ Liberty City Stories®
-- ported to PS4
-- emu used=jakx v2

apiRequest(0.1)  
 
local emuObj  = getEmuObject()
local eeObj  = getEEObject()
local gsObj    = getGsObject()

emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(1)

local patcher = function()
--16:9
eeObj.WriteMem32(0x002918d0,0x468010a0)
eeObj.WriteMem32(0x002918d4,0xc6650030)
eeObj.WriteMem32(0x002918d8,0x44830800)
eeObj.WriteMem32(0x002918dc,0x46800860)
eeObj.WriteMem32(0x002918e0,0xc6640034)
eeObj.WriteMem32(0x002918e4,0x44840000)
eeObj.WriteMem32(0x002918e8,0x46800020)
eeObj.WriteMem32(0x002918ec,0xc6630038)
eeObj.WriteMem32(0x002918f0,0x46151082)
eeObj.WriteMem32(0x002918f4,0x46150842)
eeObj.WriteMem32(0x002918f8,0x46150002)
eeObj.WriteMem32(0x002918fc,0x46022940)
eeObj.WriteMem32(0x00291900,0x46012100)
eeObj.WriteMem32(0x00291904,0x460018c0)
eeObj.WriteMem32(0x00291908,0x4615a034)
eeObj.WriteMem32(0x0029190c,0xe6650030)
eeObj.WriteMem32(0x00291910,0xe6640034)
eeObj.WriteMem32(0x00291914,0x45000012)
eeObj.WriteMem32(0x00291918,0xe6630038)
eeObj.WriteMem32(0x0029191c,0x27c2bbf0)
eeObj.WriteMem32(0x00291920,0x24040001)
eeObj.WriteMem32(0x00291924,0x8c431d04)
eeObj.WriteMem32(0x00291928,0x1064000d)
eeObj.WriteMem32(0x0029192c,0x24070096)
eeObj.WriteMem32(0x00291930,0x3c01437f)
eeObj.WriteMem32(0x00291934,0x44810000)
eeObj.WriteMem32(0x00291938,0x2405000b)
eeObj.WriteMem32(0x0029193c,0x4600b002)
eeObj.WriteMem32(0x00291940,0xae05002c)
eeObj.WriteMem32(0x00291944,0x46000064)
eeObj.WriteMem32(0x00291948,0x44020800)
eeObj.WriteMem32(0x0029194c,0x24420019)
eeObj.WriteMem32(0x00291950,0x28430097)
eeObj.WriteMem32(0x00291954,0x00e3100a)
eeObj.WriteMem32(0x00291958,0x10000007)
eeObj.WriteMem32(0x0029195c,0xae020028)
eeObj.WriteMem32(0x00291960,0x8e03002c)
eeObj.WriteMem32(0x00291964,0x2402000b)
eeObj.WriteMem32(0x00291968,0x14620003)
eeObj.WriteMem32(0x0029196c,0x2405ffff)
eeObj.WriteMem32(0x00291970,0xae00002c)
eeObj.WriteMem32(0x00291974,0xae050028)
eeObj.WriteMem32(0x00291978,0x0c0a47a2)
eeObj.WriteMem32(0x0029197c,0x0260202d)
eeObj.WriteMem32(0x00291980,0x0c0a47a4)
eeObj.WriteMem32(0x00291984,0x0260202d)
eeObj.WriteMem32(0x00291988,0xc7ac0124)
eeObj.WriteMem32(0x0029198c,0x3c013f9d)
eeObj.WriteMem32(0x00291990,0x44810000)
eeObj.WriteMem32(0x00291994,0x0c0820e8)
eeObj.WriteMem32(0x00291998,0x46006302)
--
eeObj.WriteMem32(0x0029ffd4,0x24040001)-- 0x24040003 >> addiu a0, zero, $0003
--no interlace
eeObj.WriteMem32(0x2035F1B4,0)
--60fps
--eeObj.WriteMem32(0x202D92C4,0)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

--FPS fix
eeObj.AddHook(0x0029fc68, 0xdca20000, function() -- ld v0, $0000(a1)
         eeObj.AdvanceClock(5000)
         eeObj.Vu1MpgCycles(200)
end)
--extra stutter removal
eeObj.AddHook(0x0029fc84, 0x00e2102b, function() -- sltu v0, a3, v0
         eeObj.AdvanceClock(1800)
end)

Hardly any more stutter. Feedback welcome
 
Last edited:
I reproduced a bit of the tenchu fs error graph on pcsx2, here are the codes, if they are of any use.

Code:
203F6290 00000016 --00008016
203F6400 00000016 --00008016

- with emu red faction 2 the same error occurs, it is identical to as in pcsx2, but changing the values in ps4 does not work.
 
Grand Theft Auto - Liberty City Stories [SLES]
-speed improvements by stayhye

Lua
Code:
apiRequest(0.1)
local emuObj   = getEmuObject()
local eeObj    = getEEObject()
local gsObj    = getGsObject()
emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(1)
local patcher = function()
--ws
eeObj.WriteMem32(0x00291990, 0x468010a0)
eeObj.WriteMem32(0x00291994, 0xc6650030)
eeObj.WriteMem32(0x00291998, 0x44830800)
eeObj.WriteMem32(0x0029199c, 0x46800860)
eeObj.WriteMem32(0x002919a0, 0xc6640034)
eeObj.WriteMem32(0x002919a4, 0x44840000)
eeObj.WriteMem32(0x002919a8, 0x46800020)
eeObj.WriteMem32(0x002919ac, 0xc6630038)
eeObj.WriteMem32(0x002919b0, 0x46151082)
eeObj.WriteMem32(0x002919b4, 0x46150842)
eeObj.WriteMem32(0x002919b8, 0x46150002)
eeObj.WriteMem32(0x002919bc, 0x46022940)
eeObj.WriteMem32(0x002919c0, 0x46012100)
eeObj.WriteMem32(0x002919c4, 0x460018c0)
eeObj.WriteMem32(0x002919c8, 0x4615a034)
eeObj.WriteMem32(0x002919cc, 0xe6650030)
eeObj.WriteMem32(0x002919d0, 0xe6640034)
eeObj.WriteMem32(0x002919d4, 0x45000012)
eeObj.WriteMem32(0x002919d8, 0xe6630038)
eeObj.WriteMem32(0x002919dc, 0x27c2bdf0)
eeObj.WriteMem32(0x002919e0, 0x24040001)
eeObj.WriteMem32(0x002919e4, 0x8c431d04)
eeObj.WriteMem32(0x002919e8, 0x1064000d)
eeObj.WriteMem32(0x002919ec, 0x24070096)
eeObj.WriteMem32(0x002919f0, 0x3c01437f)
eeObj.WriteMem32(0x002919f4, 0x44810000)
eeObj.WriteMem32(0x002919f8, 0x2405000b)
eeObj.WriteMem32(0x002919fc, 0x4600b002)
eeObj.WriteMem32(0x00291a00, 0xae05002c)
eeObj.WriteMem32(0x00291a04, 0x46000064)
eeObj.WriteMem32(0x00291a08, 0x44020800)
eeObj.WriteMem32(0x00291a0c, 0x24420019)
eeObj.WriteMem32(0x00291a10, 0x28430097)
eeObj.WriteMem32(0x00291a14, 0x00e3100a)
eeObj.WriteMem32(0x00291a18, 0x10000007)
eeObj.WriteMem32(0x00291a1c, 0xae020028)
eeObj.WriteMem32(0x00291a20, 0x8e03002c)
eeObj.WriteMem32(0x00291a24, 0x2402000b)
eeObj.WriteMem32(0x00291a28, 0x14620003)
eeObj.WriteMem32(0x00291a2c, 0x2405ffff)
eeObj.WriteMem32(0x00291a30, 0xae00002c)
eeObj.WriteMem32(0x00291a34, 0xae050028)
eeObj.WriteMem32(0x00291a38, 0x0c0a47d2)
eeObj.WriteMem32(0x00291a3c, 0x0260202d)
eeObj.WriteMem32(0x00291a40, 0x0c0a47d4)
eeObj.WriteMem32(0x00291a44, 0x0260202d)
eeObj.WriteMem32(0x00291a48, 0xc7ac0124)
eeObj.WriteMem32(0x00291a4c, 0x3c013f9d)
eeObj.WriteMem32(0x00291a50, 0x44810000)
eeObj.WriteMem32(0x00291a54, 0x0c082128)
eeObj.WriteMem32(0x00291a58, 0x46006302)
--
eeObj.WriteMem32(0x002A0094,0x24040001)
--no interlace
eeObj.WriteMem32(0x2035F394,0)
--50fps
--eeObj.WriteMem32(0x202D9384,0)
emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(patcher)
--FPS fix
eeObj.AddHook(0x0029FD28, 0xdca20000, function()
         eeObj.AdvanceClock(5000)
         eeObj.Vu1MpgCycles(200)
end)
--extra stutter removal
eeObj.AddHook(0x0029FD44, 0x00e2102b, function()
         eeObj.AdvanceClock(1800)
end)
 
Last edited:
I reproduced a bit of the tenchu fs error graph on pcsx2, here are the codes, if they are of any use.

Code:
203F6290 00000016 --00008016
203F6400 00000016 --00008016

- with emu red faction 2 the same error occurs, it is identical to as in pcsx2, but changing the values in ps4 does not work.
You need to set a read breakpoint at those offsets and make sure that the EE is not branching over the offsets that read from them.
 
Final Fight Streetwise [SLES-53853]
Code:
--gs-uprender=2x2
--gs-upscale=point --> fix slowdown
--host-display-mode=full
--ps2-lang=system
#Emu=jakv2

Lua:
Code:
apiRequest(1.0)

local eeObj       = getEEObject()
local emuObj = getEmuObject()
local gsObj       = getGsObject()
local hwaddr      = require("ee-hwaddr")

local patcher = function()

gsObj.SetDeinterlaceShift(0)

--Widescreen by nemesis2000
eeObj.WriteMem32(0x00180308,0x3c043f71)
eeObj.WriteMem32(0x0018030c,0x3489d5a2)
eeObj.WriteMem32(0x00180310,0x3c03bf71)
eeObj.WriteMem32(0x00180314,0x346ad5a2)
eeObj.WriteMem32(0x001ebed0,0x3c033fab)

--No Interlace by me
--patch=1,EE,001014ec,word,00000000 //64420008

--Filter Disable by me( fix menu slowdown)
eeObj.WriteMem32(0x20662994,0x00000001)
eeObj.WriteMem32(0x20662AF0,0x00000000)
eeObj.WriteMem32(0x20662AF4,0x00000000)
eeObj.WriteMem32(0x20662AF8,0x00000000)
eeObj.WriteMem32(0x20662AFc,0x00000000)
eeObj.WriteMem32(0x20662b30,0x00000000)
eeObj.WriteMem32(0x20662b34,0x00000000)
eeObj.WriteMem32(0x20662b38,0x00000000)
eeObj.WriteMem32(0x20662b3c,0x00000000)
eeObj.WriteMem32(0x20662b70,0x00000000)
eeObj.WriteMem32(0x20662b74,0x00000000)
eeObj.WriteMem32(0x20662b78,0x00000000)
eeObj.WriteMem32(0x20662b7c,0x00000000)
eeObj.WriteMem32(0x20662bb0,0x00000000)
eeObj.WriteMem32(0x20662bb4,0x00000000)
eeObj.WriteMem32(0x20662bb8,0x00000000)
eeObj.WriteMem32(0x20662bbc,0x00000000)
eeObj.WriteMem32(0x20662bf0,0x00000000)
eeObj.WriteMem32(0x20662bf4,0x00000000)
eeObj.WriteMem32(0x20662bf8,0x00000000)
eeObj.WriteMem32(0x20662bfc,0x00000000)
eeObj.WriteMem32(0x20662c30,0x00000000)
eeObj.WriteMem32(0x20662c34,0x00000000)
eeObj.WriteMem32(0x20662c38,0x00000000)
eeObj.WriteMem32(0x20662c3c,0x00000000)
eeObj.WriteMem32(0x20662c70,0x00000000)
eeObj.WriteMem32(0x20662c74,0x00000000)
eeObj.WriteMem32(0x20662c78,0x00000000)
eeObj.WriteMem32(0x20662c7c,0x00000000)
eeObj.WriteMem32(0x20662cb0,0x00000000)
eeObj.WriteMem32(0x20662cb4,0x00000000)
eeObj.WriteMem32(0x20662cb8,0x00000000)
eeObj.WriteMem32(0x20662cbc,0x00000000)
eeObj.WriteMem32(0x20662bf4,0x00000000)
eeObj.WriteMem32(0x20662cf0,0x00000000)
eeObj.WriteMem32(0x20662cf4,0x00000000)
eeObj.WriteMem32(0x20662cf8,0x00000000)
eeObj.WriteMem32(0x20662cfc,0x00000000)
eeObj.WriteMem32(0x20662d30,0x00000000)
eeObj.WriteMem32(0x20662d34,0x00000000)
eeObj.WriteMem32(0x20662d38,0x00000000)
eeObj.WriteMem32(0x20662d3c,0x00000000)
eeObj.WriteMem32(0x20662ab0,0x00000000)
eeObj.WriteMem32(0x20662ab4,0x00000000)
eeObj.WriteMem32(0x20662ab8,0x00000000)
eeObj.WriteMem32(0x20662abc,0x00000000)
eeObj.WriteMem32(0x20662a70,0x00000000)
eeObj.WriteMem32(0x20662a74,0x00000000)
eeObj.WriteMem32(0x20662a78,0x00000000)
eeObj.WriteMem32(0x20662a7c,0x00000000)
eeObj.WriteMem32(0x20662ab0,0x00000000)
eeObj.WriteMem32(0x20662a30,0x00000000)
eeObj.WriteMem32(0x20662a34,0x00000000)
eeObj.WriteMem32(0x20662a38,0x00000000)
eeObj.WriteMem32(0x20662a3c,0x00000000)
eeObj.WriteMem32(0x206629f0,0x00000000)
eeObj.WriteMem32(0x206629f4,0x00000000)
eeObj.WriteMem32(0x206629f8,0x00000000)
eeObj.WriteMem32(0x206629fc,0x00000000)
eeObj.WriteMem32(0x206629b0,0x00000000)
eeObj.WriteMem32(0x206629b4,0x00000000)
eeObj.WriteMem32(0x206629b8,0x00000000)
eeObj.WriteMem32(0x206629bc,0x00000000)
eeObj.WriteMem32(0x20662970,0x00000000)
eeObj.WriteMem32(0x20662974,0x00000000)
eeObj.WriteMem32(0x20662978,0x00000000)
eeObj.WriteMem32(0x2066297c,0x00000000)
eeObj.WriteMem32(0x20662930,0x00000000)
eeObj.WriteMem32(0x20662934,0x00000000)
eeObj.WriteMem32(0x20662938,0x00000000)
eeObj.WriteMem32(0x2066293c,0x00000000)
eeObj.WriteMem32(0x206628f0,0x00000000)
eeObj.WriteMem32(0x206628f4,0x00000000)
eeObj.WriteMem32(0x206628f8,0x00000000)
eeObj.WriteMem32(0x206628fc,0x00000000)
eeObj.WriteMem32(0x206628b0,0x00000000)
eeObj.WriteMem32(0x206628b4,0x00000000)
eeObj.WriteMem32(0x206628b8,0x00000000)
eeObj.WriteMem32(0x206628bc,0x00000000)
eeObj.WriteMem32(0x20662870,0x00000000)
eeObj.WriteMem32(0x20662874,0x00000000)
eeObj.WriteMem32(0x20662878,0x00000000)
eeObj.WriteMem32(0x2066287c,0x00000000)
end
emuObj.ThrottleFast()
emuObj.AddVsyncHook(patcher)

Fully playable now, i completed 2 times. Only little problem is in final fight original in extras(shaking screen).

You have for SLUS-21238 ?
 
Haunting Ground (SLUS-21075/SLES-52877) fixes for shadows, buggy meshes on cutscenes, slightly misplaced post processing effects, broken blur effects and black screen in panic mode:

CLI:
--gs-use-mipmap=1
--gs-kernel-cl-up="mipmap2x2"
--gs-flush-ad-xyz=safeZwrite

LUA:
apiRequest(2.3)

local gpr = require("ee-gpr-alias")
local emuObj = getEmuObject()
local eeObj = getEEObject()

-- Fix shadow
emuObj.SetGsTitleFix( "ignoreUpShiftTri", "reserved", { fbmask = 0x00FFFFFF } )

Apply this to your ISO:
NTSC:
// Disable Blur-Effect
patch=1,EE,002bbba4,word,34020000
// Disable briefly emerging Blur-Effects and constant effects on some foreground objects
patch=1,EE,002c6650,word,03e00008
patch=1,EE,002c6654,word,34020000

PAL:
// Disable Blur-Effect
patch=1,EE,0028c684,word,34020000
// Disable briefly emerging Blur-Effects and constant effects on some foreground objects
patch=1,EE,002935c0,word,03e00008
patch=1,EE,002935c4,word,34020000

Note: The 1st blur code is only half of the "disable blur effect" code from Maori-Jigglypuff. If you only apply half of the code, you can preserve the gradient effect while Fiona is in panic mode along with text that might appear during those moments. The 2nd blur code is to avoid upscalled lines/ghosting in some cutscenes.

Note 2: Using ignoreUpShiftTri to fix the shadows doesn't degrade the visual quality of the graphics. Also, mipmap uprender fixes the white seams and SafeZWrite fixes some minor post processing effects.
VIDEO

Emu used and required: JakX v2.
 
Last edited:
Haunting Ground (SLUS-21075/SLES-52877) shadows fix & buggy meshes on cutscenes:

CONFIG:
--gs-kernel-cl-up="up2x2simple"

And to avoid the black screen when Fiona gets scared, use the Maori patch to remove the Blur Effects and Briefly Emerging Blur-Effects. Maybe only one of these is needed but I didn't test. This way, we can have the original post processing effects with shadows and zero graphical bugs. Though without blur there is noticable Aliasing, maybe forcing progressive scan on it could fix that? Tested on Jak v2.
Code:
--gs-kernel-cl-up="up2x2simple"
that command get picture low quality always! for remove small bugs need use JakX v.2 emu + Maori cheats!

I test it about 2 years ago!

I also found hd texture pack for this game, maybe re upload new config soon!
 
Does anyone know how to fix this error in gran turismo 4 jap ??? this happens when i go in lesson 2 in license B , i used the siren emu.

*** Unhandled PageFault (access violation) ***
C52
Read or Write @ 0x00000080:C5244020
By instrution @ rip=0x00000000:006294A0
Thread :Runtime_EE
 
GRAN TURISMO 3 A-SPEC (SCES-50294/SCUS-97102/SCPS-15009)

config-emu-ps4.txt

#gfx fix
--ee-cycle-scalar=1.02
--gs-progressive=1
--threaded-gs=1
--gs-use-clut-merge=1
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"

#vuClamps fix
--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-clamp-operands=1
--vu1-clamp-results=1

emu used=siren
 
The Matrix™ Path of Neo™

CLI
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-adaptive-frameskip=1

--force-frame-blend=1

--cdvd-sector-read-cycles=5000

#emu used=jakx v2
LUA
Code:
-- The Matrix Path of Neo NTSC
-- Graphics fix by Stayhye
-- 60 fps not stable(disabled)
-- ported to PS4
-- emu used=jakx v2

local gpr = require("ee-gpr-alias")

apiRequest(0.1)

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


emuObj.PadSetLightBar(0, 0,255,0) -- green!
emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(1)
emuObj.SetDeinterlace(true)
emuObj.SetFormattedCard("neo.card")

--graphics fix! gif.dma does do something!
eeObj.AddHook(0x00102064,0xdfb00000, function() -- ld s0, $0000(sp)
       eeObj.SchedulerDelayEvent("gif.dma", 0x1600)
end)

--fps boost A
eeObj.AddHook(0x001d7154,0x9482002c, function() -- lhu v0, $002c(a0)
       eeObj.AdvanceClock(7000)
end)

--fps boost B
eeObj.AddHook(0x0027f4e8,0x34631000, function() -- ori v1, v1, $1000
       eeObj.Vu1MpgCycles(3700)
end)
--]]
local patcher = function()
--[[
--60 fps
eeObj.WriteMem32(0x20463E1C,0x3F800000) --speed
eeObj.WriteMem32(0x20463E2C,0x42700000) --fps
--]]
eeObj.WriteMem32(0x00101d7c,0x1000fffa)
--Unlock All Extras (View Extras To Unlock) by MadCatz
eeObj.WriteMem32(0x201DCCBC,0x2002FFFF)
eeObj.WriteMem32(0x201DCCC0,0xAC820000)
eeObj.WriteMem32(0x201DCCC4,0x03E00008)
eeObj.WriteMem32(0x201DCCC8,0x24020001)
eeObj.WriteMem32(0x20466750,0xFFFFFFFF)
eeObj.WriteMem32(0x20466754,0x00040011)

--Aerial Training by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x204659A4,0x00030005)
eeObj.WriteMem32(0x204659A8,0x00010013)

--Captains Rescue by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x2046614C,0x0007000B)
eeObj.WriteMem32(0x20466150,0x00010013)

--Deja Vu-It's A Trap! by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465B48,0x00000006)
eeObj.WriteMem32(0x20465B4C,0x00010013)

--Distorted Dimensions by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x2046637C,0xFFFFFFFF)
eeObj.WriteMem32(0x20466380,0x0001000E)

--Dojo Training by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465ABC,0x00050005)
eeObj.WriteMem32(0x20465AC0,0x00010013)

--Downside Up by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20466408,0xFFFFFFFF)
eeObj.WriteMem32(0x2046640C,0x0002000E)

--Ever Had A Dream, Neo? by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x2046565C,0xFFFFFFFF)
eeObj.WriteMem32(0x20465660,0x00000003)

--He Is The One by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465FA8,0xFFFFFFFF)
eeObj.WriteMem32(0x20465FAC,0x00000009)

--He's Heading For The Street by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465774,0xFFFFFFFF)
eeObj.WriteMem32(0x20465778,0x00020004)

--Helicopter Rescue by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465D78,0xFFFFFFFF)
eeObj.WriteMem32(0x20465D7C,0x00020007)


--Kung Fu Training by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465800,0xFFFFFFFF)
eeObj.WriteMem32(0x20465804,0x00000005)

--Lobby Shooting Spree by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465C60,0x00000007)
eeObj.WriteMem32(0x20465C64,0x00010013)

--Ministry Of Smiths by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x204665AC,0xFFFFFFFF)
eeObj.WriteMem32(0x204665B0,0x0001000F)

--Mr. Anderson, Welcome Back by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x204666C4,0xFFFFFFFF)
eeObj.WriteMem32(0x204666C8,0x00010011)

--Red Pill Rescue by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20466034,0x0009000A)
eeObj.WriteMem32(0x20466038,0x00010013)

--Rooftop Assault-Dodge This by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465CEC,0x00010007)
eeObj.WriteMem32(0x20465CF0,0x00010013)

--Seraph's Apology by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x204661D8,0x0000000C)
eeObj.WriteMem32(0x204661DC,0x00010013)

--Storming The Drain by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465BD4,0x00020006)
eeObj.WriteMem32(0x20465BD8,0x00010013)

--Stuck In The Loop by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465E90,0x00010008)
eeObj.WriteMem32(0x20465E94,0x00010013)

--Subway Showdown by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465E04,0xFFFFFFFF)
eeObj.WriteMem32(0x20465E08,0x00000008)

--Sword Training by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x2046588C,0x00010005)
eeObj.WriteMem32(0x20465890,0x00010013)

--Taking The Floor by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20466638,0xFFFFFFFF)
eeObj.WriteMem32(0x2046663C,0x0002000F)

--The Burly Brawl by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20466264,0x0000000D)
eeObj.WriteMem32(0x20466268,0x00010013)

--The Captains' Meeting by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x204660C0,0x0000000B)
eeObj.WriteMem32(0x204660C4,0x00010013)

--The Chase-I Need An Exit by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20465F1C,0x00030008)
eeObj.WriteMem32(0x20465F20,0x00010013)

--The Frenchman by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x204662F0,0x0000000E)
eeObj.WriteMem32(0x204662F4,0x00010013)

--The Witch by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20466494,0xFFFFFFFF)
eeObj.WriteMem32(0x20466498,0x0003000E)

--They're Coming For You, Neo by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x204656E8,0xFFFFFFFF)
eeObj.WriteMem32(0x204656EC,0x00000004)

--This Is My World by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x204667DC,0xFFFFFFFF)
eeObj.WriteMem32(0x204667E0,0x00050011)

--Turned Out by Code Master, Skiller, Lajos Szalay
eeObj.WriteMem32(0x20466520,0x0000000F)
eeObj.WriteMem32(0x20466524,0x00010013)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

LUA
Code:
--graphics fix! gif.dma does do something!
eeObj.AddHook(0x00102064,0xdfb00000, function() -- ld s0, $0000(sp)
       eeObj.SchedulerDelayEvent("gif.dma", 0x1600)
end)


Graphics fixed(mostly). Still working on this one.... Disabling uprender/upscale removes white lines and speckles, but the game look like $**t then...

Widescreen applied with config save on memory card.
 
Last edited:
Crash Nitro Kart NTSC

CLI
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-adaptive-frameskip=1
--force-frame-blend=1

--vu0-no-clamping=0
--vu1-no-clamping=0
--vu1-di-bits=0
--vu1=jit-sync
--vu1-native-patch=1

--vu1-mpg-cycles=2200
--vu1-jalr-cache-policy=newprog
--vu0-jr-cache-policy=sameprog

--ee-hook=0x005dbc38,AdvanceClock,,21000
LUA
Code:
-- Crash Nitro Kart NTSC
-- Widescreen by Stayhye
-- ported to PS4 by Stayhye
-- emu used=jakx v2

local gpr = require("ee-gpr-alias")

apiRequest(0.1)

local emuObj      = getEmuObject()
local eeObj       = getEEObject()
local gsObj       = getGsObject()
local eeOverlay    = eeObj.getOverlayObject()
local iopObj  = getIOPObject()

emuObj.PadSetLightBar(0, 255,0,255)
emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(1)
gsObj.SetUprenderMode(1) -- 0=none <> 1=2x2
emuObj.SetDeinterlace(true)

local patcher = function()
--16:9
eeObj.WriteMem32(0x0058bcf8,0x3c023f40) -- 0x3c023f00 - hor. axis
eeObj.WriteMem32(0x0058bd0c,0x3c023f40) -- 0x3c023f00 -- zoom
--freeze fix
eeObj.WriteMem32(0x003e8170,0)

eeObj.SchedulerDelayEvent("vif1.dma",0x5000)
emuObj.ThrottleMax() -- No negative.
end

emuObj.AddVsyncHook(patcher)

Much improved framerate. Widescreen ported from PAL, with an improvement.
 
Last edited:
Legaia 2: Duel Saga SLUS-20414

CLI
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth
--force-frame-blend=1

--ee-hook=0x002dc27c,AdvanceClock,,100

--vu1-jr-cache-policy=newprog
--vu1-native-patch=1
LUA
Code:
-- Legaia 2: Duel Saga SLUS-20414
-- Widescreen Hack fixed for PS4
-- ported to PS4 by Stayhye
-- emu used=jakx v2

local gpr = require("ee-gpr-alias")

apiRequest(0.1)

local emuObj      = getEmuObject()
local eeObj       = getEEObject()
local gsObj       = getGsObject()
local eeOverlay    = eeObj.getOverlayObject()
local iopObj  = getIOPObject()

emuObj.PadSetLightBar(0, 255,0,255)
emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(1) 
gsObj.SetUprenderMode(1) -- 0=none <> 1=2x2
emuObj.SetDeinterlace(true)

local patcher = function()
--16:9 
local problem_code = eeObj.ReadMem16(0x10fef0) 
if problem_code == 0x3f80 then
eeObj.WriteMem32(0x0010fef0,0x3c013f40)
end
eeObj.WriteMem32(0x0010ff7c,0x3c013f40)
eeObj.WriteMem32(0x00156e2c,0x3c0143d5)
eeObj.WriteMem32(0x00156e14,0x3c01c3d5)
--no interlace
eeObj.WriteMem32(0x205F6E80,0x00000000)
eeObj.WriteMem32(0x202C0F04,0x00000000)
eeObj.WriteMem32(0x202A6040,0xAE000060)
--Debug Mode by punk7890
eeObj.WriteMem32(0x204A4200,0x00000000)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

emuObj.SetGsTitleFix( "globalSet",  "reserved", { waveThreshold = 90000} )
emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )
emuObj.SetGsTitleFix( "SetSelfRender", "reserved", { renderSelf=1 , zmsk=1 , alpha=0  } )

No issues. Removed stutter
 

Similar threads

Back
Top