PS4 [Research]PS2 emulator configuration on PS4

20230804_142024_00986481.jpg
20230804_141904_00204142.jpg


Anyone know how to fix the shadow issue in Ultimate Spiderman? This happens in all emus tested.

  • red faction 1 and 2
  • jaks, all of them
 
Well it looks same like in Superman!

Code:
--gs-vert-precision=8

did you try?

yes, and sadly it did not fix. I also tested without the widescreen patch and without freeze fix.

also tried:
  • vu clamping combinations
  • vif1-instant-xfer=0
  • vu-const-prop
  • cop2-const-prop
  • gs-vert-precision=16
  • gs-flush-ad-xyz=always
  • assert-path1-ad=0

Trying different emus also didn't help. I'm currently sticking with Jakx v2 for all the extra options.

My current Lua
Code:
-- Ultimate Spider-Man™ Limited Edition®
-- Freeze fix by Stayhye
-- Widescreen hack by Arapapa
-- 60fps by Asasega
-- ported to PS4 lua
-- emu used=jakx v2

apiRequest(2.3)

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

emuObj.PadSetLightBar(0, 255, 0, 255)
emuObj.SetDisplayAspectWide()
emuObj.SetDeinterlace(true)

gsObj.SetL2HMode(true)
gsObj.SetUpscaleMode("EdgeSmooth")
gsObj.SetUprenderMode("2x2")
gsObj.SetDeinterlaceShift(1)
 
--speed up A
eeNativeHook (0x002a08a0, 0x94a40016,"FastForwardClock", 0) -- lhu a0, $0016(a1)
--speed up B
eeNativeHook (0x0058e9f8, 0x8e42000c,'AdvanceClock', 0x2500) -- lw v0, $000c(s2)

local WS = function()
--FMV freeze fix(PS4)
eeObj.WriteMem32(0x0057dc7c,0)
--16:9
eeObj.WriteMem32(0x0058b210,0x08030000) -- 0x3c030074 >> lui v1, $0074 --X-Fov
eeObj.WriteMem32(0x000c0000,0x3c030074)
eeObj.WriteMem32(0x000c0004,0x3c013faa)
eeObj.WriteMem32(0x000c0008,0x3421aaab)
eeObj.WriteMem32(0x000c000c,0x4481f000)
eeObj.WriteMem32(0x000c0010,0x461e18c2)
eeObj.WriteMem32(0x000c0014,0x08162c85)

--60fps
--eeObj.WriteMem32(0x20311F18,0x00000000)
--eeObj.WriteMem32(0x2069FE20,0x00000001)
--Access All Characters/Covers/Concept Art/Landmarks by Code Master
eeObj.WriteMem32(0x2066FBF8,0x00000001)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(WS)

Untitled.png


I found this in ps2dis, but I don't know how to enable/disable. I see stuff here for shadows, blur, etc
 
Last edited:
not need ask emus here or @Coro will come for you:biggrin2:
I'm starting to get scared of @Coro. Sorry!

It's curious, @Stayhye; Kya suffers from slowdowns due to the equivalent of 'INTC Spin Detection' in pcsx2 but ps4 emu not available disabled this. It probably shares issues with GTA Liberty City Stories and Vice City Stories.
 
Last edited:
Scooby-Doo! Night of 100 Frights (U)(SLUS-20349)

CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-adaptive-frameskip=1
--vu1-jr-cache-policy=newprog
--vu1-di-bits=0
LUA
Code:
-- Scooby-Doo! Night of 100 Frights (U)(SLUS-20349)
-- Widescreen hack by Arapapa
-- stutter fix by Stayhye
-- ported to PS4
-- emu used=jakx v2

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

emuObj.SetDisplayAspectWide()

local patcher = function()
--Widescreen hack 16:9

--X-Fov
--680001c6 6c0002c6
eeObj.WriteMem32(0x001e6268,0x080a04ac) --c6010068

eeObj.WriteMem32(0x002812b0,0x3c013f40) -- 00000000
eeObj.WriteMem32(0x002812b4,0x4481f000) -- 00000000
eeObj.WriteMem32(0x002812b8,0xc6010068) -- 00000000
eeObj.WriteMem32(0x002812bc,0xc602006c) -- 00000000
eeObj.WriteMem32(0x002812c0,0x461e0843) -- 00000000
eeObj.WriteMem32(0x002812c4,0xe6010068) -- 00000000
eeObj.WriteMem32(0x002812c8,0x0807989c) -- 00000000

--60 fps
eeObj.WriteMem32(0x20131DB0,0x2C420001)

emuObj.ThrottleMax()
end

eeObj.AddHook(0x001d56a4, 0xc6010008, function() -- lwc1 $f1, $0008(s0)
         eeObj.AdvanceClock(3500)
end)
   
emuObj.AddVsyncHook(patcher)

No issues noticed. Tested a little. Feedback welcome
 
ICO (SCES50760) (SCUS97113)

Updated FIX

TXT.

Code:
--host-display-mode=16:9
--gs-vert-precision=8

LUA. (PAL)
Code:
-- ICO [SCES-50760] (E)
-- Patches/Codes Hacked By Maori-Jigglypuff [Savas Guercebe]
-- Widescreen hack by nemesis2000 (pnach by nemesis2000)
-- Jak v2

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

apiRequest(0.1)

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

-- Debug Menu
eeInsnReplace(0x101f94, 0x0c045946, 0x0c06c966)
eeInsnReplace(0x1af850, 0x27bdffa0, 0x0806bd28)

local patcher = function()

-- widescreen
eeObj.WriteMem32(0x00114dd0,0x3c013f40)
eeObj.WriteMem32(0x00114dd4,0x4481c000)
eeObj.WriteMem32(0x00114de0,0x46181082)

-- render fix
eeObj.WriteMem32(0x001146F4,0x240302ab)
eeObj.WriteMem32(0x0054E478,0x44fa0000)

-- Maximum Graphics Booster
-- (No Blur-Effect and maxed out Game Sharpness)
eeObj.WriteMem32(0x001322f0,0x03e00008)
eeObj.WriteMem32(0x001322f4,0x00000000)
eeObj.WriteMem32(0x001fca60,0x03e00008)
eeObj.WriteMem32(0x001fca64,0x00000000)
eeObj.WriteMem32(0x001137f8,0x03e00008)
eeObj.WriteMem32(0x001137fc,0x00000000)
eeObj.WriteMem32(0x001136b0,0x03e00008)
eeObj.WriteMem32(0x001136b4,0x00000000)

-- Disable Post-Effect like the bright reddish Sky
eeObj.WriteMem32(0x0028F808,0x00000000)

-- No black Borders
eeObj.WriteMem32(0x001133F8,0x44800800)
eeObj.WriteMem32(0x00113410,0x44800800)
eeObj.WriteMem32(0x00113420,0x44800800)
eeObj.WriteMem32(0x00113534,0x44800000)

-- No Shadow Effects
eeObj.WriteMem32(0x0028F7CC,0x00000000)
eeObj.WriteMem32(0x0028F7D0,0x00000000)
eeObj.WriteMem32(0x0028F7D4,0x00000000)
eeObj.WriteMem32(0x0028F7D8,0x00000000)
eeObj.WriteMem32(0x0028F7DC,0x00000000)
eeObj.WriteMem32(0x0028F7E0,0x00000000)
eeObj.WriteMem32(0x0028F7E4,0x00000000)
eeObj.WriteMem32(0x0028F7E8,0x00000000)

end

emuObj.AddVsyncHook(patcher)

LUA. (NTSC)
Code:
-- ICO [SCUS-97113] (U)
-- Patches/Codes Hacked By Maori-Jigglypuff [Savas Guercebe]
-- Widescreen hack by nemesis2000 (pnach by nemesis2000)
-- Jak v2

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

apiRequest(0.1)

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

local patcher = function()

-- widescreen
eeObj.WriteMem32(0x001146c8,0x3c013f40)
eeObj.WriteMem32(0x001146cc,0x44813800)
eeObj.WriteMem32(0x001146d8,0x46071082)
eeObj.WriteMem32(0x001146dc,0xc78780dc)

-- render fix
eeObj.WriteMem32(0x001141a4,0x240302ab)
eeObj.WriteMem32(0x00554790,0x44800000) --optional

-- Maximum Graphics Booster
-- (No Blur-Effect and maxed out Game Sharpness)
eeObj.WriteMem32(0x00130450,0x03e00008)
eeObj.WriteMem32(0x00130454,0x00000000)
eeObj.WriteMem32(0x001eef18,0x03e00008)
eeObj.WriteMem32(0x001eef1c,0x00000000)
eeObj.WriteMem32(0x00113298,0x03e00008)
eeObj.WriteMem32(0x0011329c,0x00000000)
eeObj.WriteMem32(0x001133e0,0x03e00008)
eeObj.WriteMem32(0x001133e4,0x00000000)

-- Disable Post-Effect like the bright reddish Sky
eeObj.WriteMem32(0x00275208,0x00000000)

-- No black Borders
eeObj.WriteMem32(0x00112fd8,0x44800800)
eeObj.WriteMem32(0x00112ff0,0x44800800)
eeObj.WriteMem32(0x00113000,0x44800800)
eeObj.WriteMem32(0x00113120,0x44800000)

-- No Shadow Effects
eeObj.WriteMem32(0x002751CC,0x00000000)
eeObj.WriteMem32(0x002751D0,0x00000000)
eeObj.WriteMem32(0x002751D4,0x00000000)
eeObj.WriteMem32(0x002751D8,0x00000000)
eeObj.WriteMem32(0x002751DC,0x00000000)
eeObj.WriteMem32(0x002751E0,0x00000000)
eeObj.WriteMem32(0x002751E4,0x00000000)
eeObj.WriteMem32(0x002751E8,0x00000000)

-- 60 fps
local code_check1 = eeObj.ReadMem16(0x006325B4) -- check if the cut scene is being played
if code_check1 == 0x0000 then
eeObj.WriteMem32(0x00274EC4,0x00000001)
else
eeObj.WriteMem32(0x00274EC4,0x00000002)
end

-- enable back buffer
eeObj.WriteMem32(0x00274EF8,0x00000001)
eeObj.WriteMem32(0x00274F20,0x00000001)
eeObj.WriteMem32(0x00274F00,0x00001040)
eeObj.WriteMem32(0x00274F28,0x00001040)

end

emuObj.AddVsyncHook(patcher)

ICO|Graphics Booster|2 Players|Debug Menu|60fps PS2toPS4 Test
 

Attachments

Devil may cry 3 SE (SLUS-21361 and SLES-54186, and maybe also the regular editions) on PS4 has the famous mission 18 bug where you'll be unable to progress in the game (You won't be able to fight the boss/monsters in the crystal colours light blue, orange and purple), i don't why the game is still listed as playable it's clearly not, can anyone help ?
 
Devil may cry 3 SE (SLUS-21361 and SLES-54186, and maybe also the regular editions) on PS4 has the famous mission 18 bug where you'll be unable to progress in the game (You won't be able to fight the boss/monsters in the crystal colours light blue, orange and purple), i don't why the game is still listed as playable it's clearly not, can anyone help ?
Test that game long time before! Well you can try for PAL
Code:
--Open All Levels
eeObj.WriteMem32(0x204A2400,0x00000000)

For NTSC
Code:
--Open All Levels
eeObj.WriteMem32(0x204A1480,0x00000000)

DMC 3 Dante's Awakening SE Before\\\After FiX Comparison & Gameplay Test PS2toPS4
 
Devil may cry 3 SE (SLUS-21361 and SLES-54186, and maybe also the regular editions) on PS4 has the famous mission 18 bug where you'll be unable to progress in the game (You won't be able to fight the boss/monsters in the crystal colours light blue, orange and purple), i don't why the game is still listed as playable it's clearly not, can anyone help ?

why can't you fight the boss? does the game freeze? what exactly happens there?

*edit - the game needs EE Round Mode to Nearest... unsure how to do that on PS4
 
Last edited:
why can't you fight the boss? does the game freeze? what exactly happens there?

*edit - the game needs EE Round Mode to Nearest... unsure how to do that on PS4
Yeah i saw that too in the PCSX2 Wiki, i thought that maybe someone had an idea on how to set the EE Round Mode to "Nearest" on a PS4.
 
I asked and Kozarovv delivered yet again:

Code:
-- SLUS-21361
apiRequest(1.0)
local eeObj = getEEObject()
eeObj.AddHook(0x20A9F0, 0xF8400030, function()
    local sp  = eeObj.GetGpr(29)
    local val = eeObj.ReadMemFloat(sp + 0x84)
    eeObj.WriteMemFloat(sp + 0x84, val - 0.1)
end)
Port of PS3's hook to adjust floats. This hook was made before accuracy commands were implemented in the emulator. This should be a lot faster anyways.

Experimental, may or may not fix the issue. Needs testing!
 
What's also interesting about this bug is that it was also happening on the backwards compatible PS3 lunch model (The one that had the PS2 chips inside) but was later fixed by PS3 firmware version 2.01.
 
I asked and Kozarovv delivered yet again:

Code:
-- SLUS-21361
apiRequest(1.0)
local eeObj = getEEObject()
eeObj.AddHook(0x20A9F0, 0xF8400030, function()
    local sp  = eeObj.GetGpr(29)
    local val = eeObj.ReadMemFloat(sp + 0x84)
    eeObj.WriteMemFloat(sp + 0x84, val - 0.1)
end)
Port of PS3's hook to adjust floats. This hook was made before accuracy commands were implemented in the emulator. This should be a lot faster anyways.

Experimental, may or may not fix the issue. Needs testing!
Will test ASAP.
 
I asked and Kozarovv delivered yet again:

Code:
-- SLUS-21361
apiRequest(1.0)
local eeObj = getEEObject()
eeObj.AddHook(0x20A9F0, 0xF8400030, function()
    local sp  = eeObj.GetGpr(29)
    local val = eeObj.ReadMemFloat(sp + 0x84)
    eeObj.WriteMemFloat(sp + 0x84, val - 0.1)
end)
Port of PS3's hook to adjust floats. This hook was made before accuracy commands were implemented in the emulator. This should be a lot faster anyways.

Experimental, may or may not fix the issue. Needs testing!

I think this will be needed after apiRequest for GetGpr to work

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

Similar threads

Back
Top