PS4 [Research]PS2 emulator configuration on PS4

Shadow Hearts

CLI
All versions
Code:
--gs-kernel-cl="h2lpool"                                             #Completely fixed game frame rate
--gs-kernel-cl-up="h2lpool2x2"                                  #Completely fixed game frame rate
--fpu-accurate-mul-fast=1                                          #Stable frame rate for layered error commands
--fpu-accurate-muldiv=1                                            #Fix layering bug in game#
--fpu-accurate-addsub-range=0x21c63c,0x21c63c  #PS3 configuration from our good friend @mrjaredbeta, fixing soft lock issue after lottery
--gs-ignore-rect-correction=1                                    #Fix the flickering white lines in the distant view


Shadow Hearts SLPS-25041

LUA
Code:
-- Shadow Hearts (SLPS-25041)
-- Total Repair by nifengyuexia
-- emu used=RECVX v1

apiRequest(1.0)

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

--Fixed random missing graphics on characters
eeObj.WriteMem32(0x24e7ec,0x00000000)
end
emuObj.AddVsyncHook(patcher)


Shadow Hearts [the best] SLPS-73418

LUA
Code:
-- Shadow Hearts  [the best](SLPS-73418)
-- Total Repair by nifengyuexia
-- emu used=RECVX v1

apiRequest(1.0)

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

--Fixed random missing graphics on characters
eeObj.WriteMem32(0x24e47c,0x00000000)
end
emuObj.AddVsyncHook(patcher)



Shadow Hearts SLUS-20347

LUA
Code:
-- Shadow Hearts (SLUS-20347)
-- Total Repair by nifengyuexia
-- emu used=RECVX v1

apiRequest(1.0)

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

--Fixed random missing graphics on characters
eeObj.WriteMem32(0x24e6ec,0x00000000)
end
emuObj.AddVsyncHook(patcher)



Shadow Hearts SLES-50822

LUA
Code:
-- Shadow Hearts (SLES-50822)
-- Total Repair by nifengyuexia
-- emu used=RECVX v1

apiRequest(1.0)

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

--Fixed random missing graphics on characters
eeObj.WriteMem32(0x24fbdc,0x00000000)
end
emuObj.AddVsyncHook(patcher)

影之心_20230611115702.jpg

影之心_20230611113810.jpg

影之心_20230611115908.jpg

影之心_20230611114017.jpg


I passed the final BOSS battle, there will be no more frame rate drops and graphics errors, it has been perfectly fixed.
 
Last edited:
Tekken 5

Code:
emuObj.SetGsTitleFix( "ignoreSubBuffCov", "reserved", { } )
There are many games that can be repaired by this command, including Valkyrie Profile 2: Silmeria and GT4 Racing. It can fix color graphics errors that appear at the bottom of the screen. It can also help fix black horizontal lines on 2D game characters.

welcome back nifengyuexia.
i believe Mortal Kombat: Armageddon (the included arcade game) has a horizontal lines problem.

tnx for this new fix.
 
@kozarovv,Hi, can you help me repair Dynasty Warriors 3 Xtreme Legends SLUS_206.17? The problem now is a blue screen crash or EE error when reading a specific level. Japanese version of Dynasty Warriors 3 Xtreme Legends has the same error.


View attachment 25436

View attachment 25437

@nifengyuexia
Sorry to dig up old skeletons:)
Any success with that old crash bug in Dynasty Warriors 3 XL when we trying to load Battle of Wan Castle? Always bugged me that it prevents progress of Musou campaign.
Maybe FPU/COP accuracy range needed?

EDIT: MK Armageddon still has SPS graphic glitches with small particles both in Konquest and when in a fight (falling leaves, sparks from metal or lava, etc.)

EDIT2: Does anyone know why --gs-force-bilinear=1 always crashes emus? Trying to fix pixelated ui text in Snowblind games. Seems forcing bilinear filtering fixed it in PCSX2.
 
Last edited:
Raw Danger
JakX v2

CLI:
--vu1-no-clamping=0
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-kernel-cl-up="up2x2skipinterp"

LUA:
apiRequest(0.1)

-- SLUS-21501

eeInsnReplace(0x11e104, 0x0c066a5c, 0x00000000)
eeInsnReplace(0x11e10c, 0x0c08a8ec, 0x00000000)

Clamping 0 fixes some water that was invisible before (and possibly more). Skipinterp fixes most of the blurred green/pink lines though it's still a bit visible sometimes when it's darker, water droplets from walls or characters can become pink/green especially when the flashlight is on. CLUT merge doesn't seem to do anything. There is also some minor audio stuttering during cutscene explosions (frame drops?). This game is close to perfect, if you can help further optimize it I would really appreciate.
 
Ty the Tasmanian Tiger NTSC
Ty the Tasmanian Tiger 2 NTSC


TXT
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth
--host-display-mode=16:9
--gs-kernel-cl-up="up2x2skipinterp"      #fix line
Lua
Code:
--kof98um # fix crash in TY 2

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

apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(patcher)

Ty3 the Tasmanian Tiger Night of the Quinkan NTSC
page 234
 
Last edited:
RPM Tuning (E)(SLES-52190)

Lua
Code:
--RPM Tuning (E)(SLES-52190)
--Widescreen hack by Arapapa
--jakv2

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

apiRequest(0.1)

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

local patcher = function()
--Widescreen hack 16:9
eeObj.WriteMem32(0x001ca480,0x080eca78)
eeObj.WriteMem32(0x003b29e0,0x3c013f40)
eeObj.WriteMem32(0x003b29e4,0x4481f000)
eeObj.WriteMem32(0x003b29e8,0xc6010068)
eeObj.WriteMem32(0x003b29ec,0xc602006c)
eeObj.WriteMem32(0x003b29f0,0x461e0843)
eeObj.WriteMem32(0x003b29f4,0xe6010068)
eeObj.WriteMem32(0x003b29f8,0x08072922)

emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(patcher)
--I fixed blur in the lighting
emuObj.SetGsTitleFix( "forceSimpleFetch",  "reserved", {psm=0} )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )
 
Ironman NTSC

lua
Code:
--Iron Man SLUS_217.39
--Widescreen hack by PsxFan107
--jakv2

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

apiRequest(0.1)

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

local patcher = function()
--Widescreen hack 16:9
eeObj.WriteMem32(0x20148FD0,0x3C0C3FAA)
eeObj.WriteMem32(0x20148FD8,0x358CAAAB)

emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(patcher)
--I fixed blur in the lighting
emuObj.SetGsTitleFix( "forceSimpleFetch",  "reserved", {psm=0} )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=2 } )
 
Portal Runner NTSC-U

Lua
Code:
--Portal Runner NTSC-U (SLUS-20003)
--Widescreen Hack by VIRGIN KLM
--kof98um (fix crash in boot)

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

apiRequest(0.1)

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

local patcher = function()

--Widescreen hack 16:9

--P1 Screen
eeObj.WriteMem32(0x0030ADD0,0x3FA1C40E)
--P2 Screen
eeObj.WriteMem32(0x0030B000,0x3FA1C40E)

emuObj.ThrottleMax()
end
emuObj.AddVsyncHook(patcher)
 
@nifengyuexia
Sorry to dig up old skeletons:)
Any success with that old crash bug in Dynasty Warriors 3 XL when we trying to load Battle of Wan Castle? Always bugged me that it prevents progress of Musou campaign.
Maybe FPU/COP accuracy range needed?

It's related to tlb miss, maybe the FPU/COP precision range can also fix it, but it's too difficult and I didn't find the correct precision range. Because it is effective on PCSX2, it is a good choice if you are willing to try it.
 
Hello, can you guys try to fix GTA Vice City Stories ?
I know Bergolino Gamer fixed completely the GTA LCS like 2 years ago but unfortunately GTA VCS still has lags in some places of the map
i appreciate you guys work, i hope this one gets fixed too someday as it means alot to me :encouragement:
 
Fix for Shadow Hearts Covenant NTSC

Code:
<emulator used=ADK Damashii>

More testing needed, but got past title screen but after few FMV black screen again:disturbed:

This problem is related to the CDVD seek times. It was reported previously on PCSX2 and fixed not too long ago (github issue #10088).
I assume we just need to adjust the --cdvd-sector-seek-cycles command... and perhaps iop-cycle-scalar. I'll try to play with it for a little to see if I can find values the game accepts without locking up.
 
FIFA World Cup Germany 2006 ( SLES-54061 / SLPM-66386 )

CONFIG TXT

--gs-adaptive-frameskip=1
--ee-cycle-scalar=1.6
--host-vsync=1
--mtap1=always

LUA

-- FIFA World Cup Germany 2006 PAL (SLES-54061)
-- emu used=JakX v.2

apiRequest(1.0)

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

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

-- fix for thin vertical lines that separate screen picture, misallignment/tearing of screen during upscaling (was used in official PSN Red Dead Revolver)
apiRequest(1.0)
local emuObj = getEmuObject()
-- psm= SCE_GS_PSMCT32 (0)
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", {psm=0} )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )

local patcher = function()

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)
 
Last edited:
This problem is related to the CDVD seek times. It was reported previously on PCSX2 and fixed not too long ago (github issue #10088).
I assume we just need to adjust the --cdvd-sector-seek-cycles command... and perhaps iop-cycle-scalar. I'll try to play with it for a little to see if I can find values the game accepts without locking up.
Was very happy to see the recent posting by nifengyuexia for Shadow Hearts fixed and running very well using the RECVX emu. I've tried SH2 with many emus and trying different save points to see what functions and does not. The RECVX emu seems to work best here too, but main issue is when the game needs to load a different room or a battle screen. Music still plays, but loading never finishes. Might be --cdvd-sector-seek-cycles as you say. Not sure what values to try.
 
Was very happy to see the recent posting by nifengyuexia for Shadow Hearts fixed and running very well using the RECVX emu. I've tried SH2 with many emus and trying different save points to see what functions and does not. The RECVX emu seems to work best here too, but main issue is when the game needs to load a different room or a battle screen. Music still plays, but loading never finishes. Might be --cdvd-sector-seek-cycles as you say. Not sure what values to try.

This game is incredibly picky with timings. Even on a real PS2 using OPL, the game can lockup (with music still going) unless you enable the Accurate Reads option - MODE 1 (closely emulates the transfer rate of the CD/DVD drive). I have tried very low and very high cdvd seek values, the very low values seem to do worse as I can't even reach the menus. Anyway, according to refractions (PCSX2 dev) this was the issue:

"Seeks were happening way too soon if they were to local positions, there should have been rotational latency in finding the sector, but we were treating it as if it was a contiguous read, meaning the delay was extremely low, much lower than games were expecting.
The flow of reads vs buffered sectors was a little broken, meaning that it was having the DMA reads out of step with the CDVD reads, making it try too early, then wait, meaning it could overstep the read point, plus it was spamming the function way too much."

^This fixed Shadow Hearts Covenant's random lockups on the emu. I'm very certain the PS2 Classics emulators are having a very similar problem, thus finding the correct seek (and possibly IOP) values will fix this game.
 

Similar threads

Back
Top