PS4 [Research]PS2 emulator configuration on PS4

Improvement Fix for Shin Megami Tensei™ Devil Summoner 2 - Raidou Kuzunoha vs. King Abaddon®
CLI

Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth

--host-display-mode=16:9

--ee-cycle-scalar=2.0
--iop-cycle-scalar=2.0

--vu1-mpg-cycles=750
--vu1-di-bits=0
--vu0-mpg-cycles=150

#emu used=fahrenheit v2

LUA

Code:
-- Shin Megami Tensei™ Devil Summoner 2 - Raidou Kuzunoha vs. King Abaddon® NTSC
-- 60FPS and No interlace by Red-Tv @PCSX2 Forums
-- ported to PS4 LUA
-- emu used=fahrenheit v2

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

apiRequest(1.0)

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

local patcher = function()
--Widescreen
eeObj.WriteMem32(0x204278e4,0x3FC6D3A0)
-- widescreen in dialogue screen
eeObj.WriteMem32(0x00427c94,0x3FC6D3A0)
--Revert to to original asspect ratio when needed
local code_check1 = eeObj.ReadMem16(0x4DE83C)
if code_check1 == 0x0001 then
eeObj.WriteMem32(0x204278e4,0x3F951EB8)
end
--Widescreen in Status screens
local code_check2 = eeObj.ReadMem16(0x4E3D04)
if code_check2 == 0x0001 then
eeObj.WriteMem32(0x204278e4,0x3FC6D3A0)
end
--Widescreen during ingame cutscene
local code_check3 = eeObj.ReadMem16(0x43ECF0)
if code_check3 == 0x0001 then
eeObj.WriteMem32(0x204278e4,0x3FC6D3A0)
end
--black borders's fix (optional)
eeObj.WriteMem32(0x00116928,0x24040000)
eeObj.WriteMem32(0x00106be0,0xa380a213)
eeObj.WriteMem32(0x001069c4,0x2404FF00)
-- No interlaced
eeObj.WriteMem32(0x003d1ca0,0x00000000) --a382016a
--60 FPS
eeObj.WriteMem32(0x0011e178,0x10000006) --14400006

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)
 
Last edited:
I found another issue with Persona 4: when fusing Personas, some parts of the resulting Persona model may flicker.
Using --vu1-no-clamp=0 seems to fix the issue.

Complete fix for Persona 4 NTSC
CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth

--host-display-mode=16:9

--vu1-no-clamping=0  # fix model flicker by @therozitaknight

#emu used=jakx v2
LUA
Code:
-- Persona 4 NTSC
-- widescreen, 60fps and missing text fix
-- ported to PS4 LUA
-- emu used=jakx v2

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

apiRequest(2.0)

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

local mods = function()

--16:9 by pavachan
eeObj.WriteMem32(0x0076111c,0x3fe38e38)

--Progressive Scan & 60fps
eeObj.WriteMem32(0x0041751c,0x3c050000)
eeObj.WriteMem32(0x00417524,0x3c060050)
eeObj.WriteMem32(0x0041752c,0x3c070001)

eeObj.WriteMem32(0x00189c60,0x3c023f7f) -- Missing text fix from PS3 config

emuObj.ThrottleMax() -- reduce load times.
end

emuObj.AddVsyncHook(mods)

-- 60 9C 18 00 80 3F 02 3C 7F 3F 02 3C
 
Last edited:
About Tekken Tag Tournament (NTSC):
Game still runs full speed on PS4 PRO with Boost Mode enabled! But some Performance FiX (by @Kugozx) was added so its playble on slim and phat ps4 versions too, only few stages runs some slow (u can watch comparison video under), most stages run full speed without boost mode!
Comparison of Versions video
more videos
 

Attachments

Experimental Fix for Champions of Norrath NTSC (test 2)
CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth

--vu1-no-clamping=0
--vu1-di-bits=0
--vu1-opt-vf00=2
--vu1-mpg-cycles=650,$000
--vu1-jr-cache-policy=newprog

--vif1-instant-xfer=0       #broken graphics fix
--vif-ignore-invalid-cmd=1  #crash fix 1
--vif1-ignore-cmd-ints=1    #crash fix 2

--ee-jit-pagefault-threshold=200
--ee-break-as-nop=1

#emu used=jakx v2
LUA
Code:
-- Champions of Norrath (SLUS_20565)
-- Widescreen hack by No.47
-- ported to PS4
-- emu used=jakx v2

apiRequest(2.2)

local gpr       = require("ee-gpr-alias")
local cpr       = require("ee-cpr0-alias")
local hwaddr     = require("ee-hwaddr")

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

local thresholdArea = 600

emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(0)

local widescreen = function()
--16:9
eeObj.WriteMem32(0x20480074,0x3F3FFFFF)
eeObj.WriteMem32(0x204800E4,0x3F3FFFFF)
eeObj.WriteMem32(0x204800C4,0x3FE2FC95)
eeObj.WriteMem32(0x204801B8,0x3FE2FC95)
eeObj.WriteMem32(0x204801C0,0x3FE2FC95)
eeObj.WriteMem32(0x204801C8,0x3FE2FC95)
eeObj.WriteMem32(0x204801CC,0x3FE2FC95)
eeObj.WriteMem32(0x204801D4,0x3FE2FC95)
-- no interlace
eeObj.WriteMem32(0x201912D8,0xAE200008)

eeObj.Vu1MpgCycles(420)
eeObj.SchedulerDelayEvent("vif1.dma", 0x5ae0)
emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(widescreen)

eeInsnReplace(0x00186a28, 0x14600004, 0x10000004) -- PS3 Config??

--Agrippa's Fix
eeInsnReplace(0x004843E0, 0x00000001, 0x00000000) -- tripleBufferMode
eeInsnReplace(0x004843E4, 0x00000000, 0x00000001) -- fullFrameMode
eeInsnReplace(0x00484474, 0x00000000, 0x00000001) -- engineFullFrameMode

-- 28 6A 18 00 04 00 60 14 04 00 00 10

local ApplyVifCycleSettings = function()

   if emuObj.IsNeoMode() then
     eeObj.SetVifDataCycleScalar(1, 1.80)
     eeObj.Vu1MpgCycles(420)
   else
     eeObj.SetVifDataCycleScalar(1, 2.6)
     eeObj.Vu1MpgCycles(420)
   end
end

ApplyVifCycleSettings()
-- ----------------------------------------------------------------

local frameskip = {}

frameskip.DeterministicMode = 0     -- set 0 for native (non-deterministic) behavior, see function frameskip.GetFramesInQueue()

-- constants:
local CLOCK_EE          = 294912000.0
local CLOCK_EE_60hz      = 294912000.0 / 60
local AdvanceCycleChunkSize = 16000
local ChunksPerFrame      = (CLOCK_EE_60hz / AdvanceCycleChunkSize)
local TaperHoldBaseline     = ChunksPerFrame / 30         -- frames to hold even the smallest taper values
local TaperRatePerFrame     = ChunksPerFrame / 180         -- frames to taper away 1.0 worth of dog-ratio
local TaperHoldPerChunk     = 15.0 / ChunksPerFrame         -- hold for 15 frames per one frame of delay
local EnableTapering     = true

local MaxChunkCounter      = math.floor(ChunksPerFrame * 2.50) -- warning: jaks can't frameskip past 2.0, they clamp ratio and slow down instead.

-- globals:
local isFrameDone        = false
local m_counter        = 0
local m_prev_framecount    = 0
local m_taper_peak     = 0
local m_taper_hold       = 0

-- Vars For diagnostic:
local d_truelog        = false
local d_numframes        = 0

frameskip.GetFramesInQueue = function()
   if frameskip.DeterministicMode == 0 then
     return gsObj.GetFramesInQueue()

   elseif frameskip.DeterministicMode == 1 then
     -- five regular frames, four slow frames
     local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 9
     if modulo < 5 then
       return 0
     else
       return 3
     end

   elseif frameskip.DeterministicMode == 2 then
     -- nice slow cyclic test!
     local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 240
     if modulo < 200 then
       return 0
     else
       return 3
     end

   elseif frameskip.DeterministicMode == 3 then
     -- slow cycle from 0 to 3 and back to 0, across about 10 seconds...
     local modulo = (eeObj.GetClock() // CLOCK_EE_60hz) % 600
     if modulo < 100 then
       return 0
     elseif modulo < 200 then
       return 1
     elseif modulo < 300 then
       return 2
     elseif modulo < 300 then
       return 3
     elseif modulo < 400 then
       return 2
     elseif modulo < 500 then
       return 1
     else
       return 0
     end
   end

   return gsObj.GetFramesInQueue()
end

frameskip.onFrameFinishedHook = function()
   emuObj.CountFrameOnPS2()   -- updates FRAPS/Actual FPS reading in olympus
 
   local frameCount     = frameskip.GetFramesInQueue()
 
   m_counter  = 0
   if frameCount ~= 0 or m_prev_framecount ~= 0 then
 
     local fcnew  = frameCount
     local fcold  = m_prev_framecount

     if fcnew < 1.2 then fcnew = fcnew - 0.6 end

     local fcdelta = fcnew - fcold
     fcdelta = (fcdelta >= 0) and (fcdelta / 2.0) or 0

     m_counter      = m_counter + (ChunksPerFrame /  7.5) * (fcnew + fcold + fcdelta)     -- baseline

     fcnew = fcnew - 0.25
     fcold = fcold - 0.40

     m_counter      = m_counter + (ChunksPerFrame / 15.0) * (fcold * fcold)           -- weighted prev slowness
     m_counter      = m_counter + (ChunksPerFrame /  9.0) * (fcnew * (fcnew+fcdelta))     -- weighted current slowness
 
     -- Boundscheck the counter.  Keep in mind that a counter delay of 2 frames will run at ~20fps.
     m_counter  = math.floor(m_counter)
     if m_counter > MaxChunkCounter then m_counter = MaxChunkCounter end
 
     if EnableTapering and m_taper_peak < m_counter then
       m_taper_hold = TaperHoldBaseline + (m_counter * TaperHoldPerChunk)
       m_taper_peak = m_counter
     end
   end

   local m_origc = m_counter
   if m_counter < m_taper_peak then
     m_counter = math.floor(m_taper_peak)
   end
 
   if m_taper_peak > 0 then
     if m_taper_hold > 0 then
       m_taper_hold = m_taper_hold - 1
     elseif m_origc <= 25 then
 
       m_taper_peak = m_taper_peak - (m_taper_peak > 112 and TaperRatePerFrame or 0.75)
     end

     if m_taper_peak > 450 and m_taper_peak > m_origc then
       m_taper_peak = m_taper_peak * 0.90
     end
   end

   m_prev_framecount = frameCount
   isFrameDone = true     -- enables SpinWaitDelayHook
end

frameskip.SpinWaitDelayHook = function(hookpc, gprv, writeon)
   if not isFrameDone then
     return
   end

   local numFrames = frameskip.GetFramesInQueue()
   local isSkipping = false
 
   if m_counter > 0 then
     isSkipping = true
   end
 
   if isSkipping then
     eeObj.SetGpr(gprv, writeon)
     eeObj.AdvanceClock(AdvanceCycleChunkSize)
     m_counter = m_counter - 1
   else
     isFrameDone = false
     m_counter = 0
   end

end

Total graphic fix! Slight Stutter at times. Haven't played for too long. Testers needed.
 
Last edited:
Fix for Champions - Return to Arms NTSC
CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth

--vif1-instant-xfer=0

--vu1-di-bits=0
--vu0-di-bits=0
--fpu-no-clamping=0
--vu0-no-clamping=0
--vu1-no-clamping=0
--vu1-mpg-cycles=520

--ee-cycle-scalar=2.0
--iop-cycle-scalar=2.0
--host-display-mode=16:9

#emu used=rogue v1
LUA
Code:
-- Champions Return to Arms (SLUS_20973)
-- Widescreen hack by No.47
-- ported to PS4
-- emu used=rogue v1

apiRequest(0.1)

--16:9
eeInsnReplace(0x0018A2F0, 0x3C013F7F, 0x3C013F3F)
eeInsnReplace(0x001949D4, 0x3C013F7F, 0x3C013F3F)
eeInsnReplace(0x0018A280, 0x3C013FAA, 0x3C013FE2)
eeInsnReplace(0x0018A284, 0x34213D70, 0x3421FC95)
eeInsnReplace(0x00199C3C, 0x3C013FAA, 0x3C013FE2)
eeInsnReplace(0x00199C40, 0x34213D70, 0x3421FC95)
eeInsnReplace(0x00199C70, 0x3C013FAA, 0x3C013FE2)
eeInsnReplace(0x00199C74, 0x34213D70, 0x3421FC95)
eeInsnReplace(0x0019A038, 0x3C013FAA, 0x3C013FE2)
eeInsnReplace(0x0019A03C, 0x34213D70, 0x3421FC95)
eeInsnReplace(0x0019A520, 0x3C013FAA, 0x3C013FE2)
eeInsnReplace(0x0019A524, 0x34213D70, 0x3421FC95)
eeInsnReplace(0x0019B5C8, 0x3C013FAA, 0x3C013FE2)
eeInsnReplace(0x0019B5CC, 0x34213D70, 0x3421FC95)
eeInsnReplace(0x002A8914, 0x3C013FAA, 0x3C013FE2)
eeInsnReplace(0x002A8918, 0x34213D70, 0x3421FC95)
eeInsnReplace(0x002A8948, 0x3C013FAA, 0x3C013FE2)
eeInsnReplace(0x002A894C, 0x34213D70, 0x3421FC95)

Broken graphics fixed! Still has slight stutter. 16:9 crashes emu if used as"eeObj.WriteMem32"
 
Last edited:
Is this really necessary?

probably not. I had a problem with crashing, so I tried it.

Can you explain 0x5ae0?

0x5ae0, random value. The biggest fix for the game was "--vif1-instant-xfer=0", so when I was still getting crashes, it tried it. Probably not needed as well.

When you directly use the frameskipping commands in your lua conf, is it safe to remove the adaptive-frameskip.lua?


yes, I believe it is. Still trying to get the hang of this setup. It would work A LOT better if I had some hooks to plug into for whatever game. I believe this method will allow full speed on most games without removal of any effects.
 
Last edited:
Experimental Fix for Champions of Norrath NTSC
Total graphic fix! Slight Stutter at times. Haven't played for too long. Testers needed.

Patch from the PS3 config does remove the haze effect in the lava levels as a performance improvement (in the RTA too). But there is a way to force the 30 fps progressive mode (640x447, instead of an interlaced 640x223) to boost the performance even further, as it seems the emulator does not switch itself to that mode when the frame rate does dip.

Here is the dirty patch for the Champions of Norrath NTSC:
Code:
eeInsnReplace(0x004843E0, 0x00000001, 0x00000000) -- trippleBufferMode
eeInsnReplace(0x004843E4, 0x00000000, 0x00000001) -- fullFrameMode
eeInsnReplace(0x00484474, 0x00000000, 0x00000001) -- engineFullFrameMode
 
Patch from the PS3 config does remove the haze effect in the lava levels as a performance improvement (in the RTA too). But there is a way to force the 30 fps progressive mode (640x447, instead of an interlaced 640x223) to boost the performance even further, as it seems the emulator does not switch itself to that mode when the frame rate does dip.

Here is the dirty patch for the Champions of Norrath NTSC:
Code:
eeInsnReplace(0x004843E0, 0x00000001, 0x00000000) -- trippleBufferMode
eeInsnReplace(0x004843E4, 0x00000000, 0x00000001) -- fullFrameMode
eeInsnReplace(0x00484474, 0x00000000, 0x00000001) -- engineFullFrameMode

Thanks! I will have to test later when I get home. For now, I will combine with my config if anyone wants to test here:https://www.psx-place.com/threads/r...nfiguration-on-ps4.16131/page-139#post-322282
 
Last edited:
Test of Champions of Norrath on PS4 PRO

Cutscenes have little bit syncing issues (sound faster then animation) Gameplay have some slowdowns in some places but is fine! Playble!

Settings are still being adjusted. Maybe "--vu1-mpg-cycles" too fast? Thanks for testing!

you can try to add "--host-audio-latency=1.33" to see if it helps sync on FMVs

Updated Fix for 24: The Game NTSC
CLI

Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth

--host-display-mode=16:9

--ee-kernel-hle=1
--ee-injection-kernel=1
--ee-injection-title=1
--ee-cycle-scalar=1.9
--safe-area-min=1.0
--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1
#emu used=psychonauts v2
LUA
Code:
-- 24 The Game NTSC
-- fixes found @PCSX2 forums
-- ported to PS4
-- emu used=psychonauts v2

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

apiRequest(1.0)

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

local patcher = function()

--Widescreen hack 16:9

--Force turn on the native widescreen
eeObj.WriteMem32(0x205FBD2C,0x00000001)

--Zoom Fix
--6000023c 2cbd428c
eeObj.WriteMem32(0x002fbea0,0x3c020000)  --3c020060
eeObj.WriteMem32(0x002fbea4,0x34420000)

eeObj.WriteMem32(0x00139e2c,0x3c020000) --3c020060
eeObj.WriteMem32(0x00139e30,0x34420000) --8c42bd2c

--X-Fov (4:3)
--aa3f013c a8aa2134
--2a8e2134 e33f013c
--eeObj.WriteMem32(0x00460364,0x3c013fe3) --3c013faa
--eeObj.WriteMem32(0x00460368,0x34218e2a) --3421aaa8

--Fix slow and choppy gameplay
eeObj.WriteMem32(0x004155a8,0x48a44800)
eeObj.WriteMem32(0x004155ac,0x48c02800)
eeObj.WriteMem32(0x004155b0,0x4a00d839)

eeObj.WriteMem32(0x00415660,0x48a44800)
eeObj.WriteMem32(0x00415664,0x48c02800)
eeObj.WriteMem32(0x00415668,0x4a00d839)

end

emuObj.AddVsyncHook(patcher)
 
Last edited:
Settings are still being adjusted. Maybe "--vu1-mpg-cycles" too fast? Thanks for testing!

you can try to add "--host-audio-latency=1.33" to see if it helps sync on FMVs

Updated Fix for 24: The Game NTSC
CLI

Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth

--host-display-mode=16:9

--ee-kernel-hle=1
--ee-injection-kernel=1
--ee-injection-title=1
--ee-cycle-scalar=1.9
--safe-area-min=1.0
--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1
#emu used=psychonauts v2
LUA
Code:
-- 24 The Game NTSC
-- ported to PS4
-- emu used=psychonauts v2

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

apiRequest(1.0)

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

local patcher = function()

--Widescreen hack 16:9

--Force turn on the native widescreen
eeObj.WriteMem32(0x205FBD2C,0x00000001)

--Zoom Fix
--6000023c 2cbd428c
eeObj.WriteMem32(0x002fbea0,0x3c020000)  --3c020060
eeObj.WriteMem32(0x002fbea4,0x34420000)

eeObj.WriteMem32(0x00139e2c,0x3c020000) --3c020060
eeObj.WriteMem32(0x00139e30,0x34420000) --8c42bd2c

--X-Fov (4:3)
--aa3f013c a8aa2134
--2a8e2134 e33f013c
--eeObj.WriteMem32(0x00460364,0x3c013fe3) --3c013faa
--eeObj.WriteMem32(0x00460368,0x34218e2a) --3421aaa8

--Fix slow and choppy gameplay
eeObj.WriteMem32(0x004155a8,0x48a44800)
eeObj.WriteMem32(0x004155ac,0x48c02800)
eeObj.WriteMem32(0x004155b0,0x4a00d839)

eeObj.WriteMem32(0x00415660,0x48a44800)
eeObj.WriteMem32(0x00415664,0x48c02800)
eeObj.WriteMem32(0x00415668,0x4a00d839)

end

emuObj.AddVsyncHook(patcher)
2022-02-01-210348.png

is that correct value?
 
It can, but I believe that is forcing a specific timing. Actually, it can removed all together. I have it set to 420 in LUA in several places.
 
thats mean need set --vu1-mpg-cycles=420,$000 ?
No need. It's already set in LUA. Same value in CLI will be redundant. I'm just trying some of the tricks I seen in official LUAs
------------------------------------------------------------

Improvement Fix for Darkwatch NTSC
CLI

Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth

--host-display-mode=16:9
#emu used=jakx v2
LUA
Code:
-- Darkwatch (SLUS-21042)
-- Widescreen hack by nemesis2000
-- ported to PS4 Lua
-- emu used=jakx v2

apiRequest(2.2)

local gpr       = require("ee-gpr-alias")
local emuObj      = getEmuObject()
local eeObj       = getEEObject()
local gsObj       = getGsObject()
local eeOverlay    = eeObj.getOverlayObject()
local iopObj  = getIOPObject()

local thresholdArea = 600

emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(1)

local hacks = function()

-------------------16:9 gameplay------
eeObj.WriteMem32(0x00641770,0x3faaaaaa)
eeObj.WriteMem32(0x00641774,0x3fe38e38)
---------------------coop--------------
eeObj.WriteMem32(0x00641930,0x402aaaaa)
eeObj.WriteMem32(0x00641934,0x40638e38)
eeObj.WriteMem32(0x0064194c,0x402aaaaa)
eeObj.WriteMem32(0x00641950,0x40638e38)
eeObj.WriteMem32(0x002CD9C4,0x24110001)
---------------------subs--------------
eeObj.WriteMem32(0x0036bb74,0x24030000)
----------------------text-------------
eeObj.WriteMem32(0x0040da28,0x3c034455)
---------------60fps-------------------
eeObj.WriteMem32(0x0071FA68,0x00000001)
---------------480p--------------------
eeObj.WriteMem32(0x2045aaa4,0x3c050000)
eeObj.WriteMem32(0x2045aaac,0x3c060050)
eeObj.WriteMem32(0x2045aab4,0x3c070001)
eeObj.WriteMem32(0x2045ad74,0x3c090010)
--[[
------------Infinite Ammo--------------
eeObj.WriteMem32(0x202A7918,0x00000000)
------------Max Infinite Ammo----------
eeObj.WriteMem32(0x202A7914,0x240303E7)
--Infinite Throwing Items
eeObj.WriteMem32(0x202A5C4C,0x00000000)
--Never Reload
eeObj.WriteMem32(0x20234D54,0x24450000)
--]]

end

emuObj.AddVsyncHook(hacks)

emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )

to enable cheats, remove --[[ and --]] from LUA. This game is still awesome!!
 
Last edited:
Improvement Fix for Death by Degrees NTSC
CLI

Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-progressive=1

#emu used=jak tpl v1
LUA
Code:
-- Death by Degrees (SLUS-20934)
-- ported to PS4 Lua
-- gameplay by ElHecht and improvement by Maorijigglypuff
-- emu used=jak tpl v1

apiRequest(1.0)

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

emuObj.PadSetLightBar(0,56,10,201)
emuObj.SetDisplayAspectWide()

local patcher = function()
-- no interlace
eeObj.WriteMem32(0x00102A84,0x34021400)

-- No black Borders
eeObj.WriteMem32(0x0032b224,0x64030000)

-- Disable Blur Effect
eeObj.WriteMem32(0x003f8638,0x64030000)

-- Nina Williams and all Characters
-- correct Brightness Adjustment without extra Light
eeObj.WriteMem32(0x0037748c,0x64030000)
eeObj.WriteMem32(0x00377500,0x64030002)
eeObj.WriteMem32(0x00377a20,0x64030001)
eeObj.WriteMem32(0x003774b0,0x340C4016)
eeObj.WriteMem32(0x003774c0,0x000C6400)
eeObj.WriteMem32(0x003774c4,0x46801060)
eeObj.WriteMem32(0x003774c8,0x358C9698)
eeObj.WriteMem32(0x003774cc,0x448C2000)
eeObj.WriteMem32(0x003774d0,0x46040142)
eeObj.WriteMem32(0x003774d4,0x46012802)
eeObj.WriteMem32(0x003774e4,0x46012802)
eeObj.WriteMem32(0x003774f4,0x46012802)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

Works and looks great!! Almost a true "remaster"
 
Last edited:
Improvement Fix for Death by Degrees NTSC
CLI

Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-progressive=1

#emu used=jak tpl v1
LUA
Code:
-- Death by Degrees (SLUS-20934)
-- ported to PS4 Lua
-- gameplay by ElHecht and improvement by Maorijigglypuff
-- emu used=jak tpl v1

apiRequest(1.0)

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

emuObj.PadSetLightBar(0,56,10,201)
emuObj.SetDisplayAspectWide()

local patcher = function()
-- no interlace
eeObj.WriteMem32(0x00102A84,0x34021400)

-- No black Borders
eeObj.WriteMem32(0x0032b224,0x64030000)

-- Disable Blur Effect
eeObj.WriteMem32(0x003f8638,0x64030000)

-- Nina Williams and all Characters
-- correct Brightness Adjustment without extra Light
eeObj.WriteMem32(0x0037748c,0x64030000)
eeObj.WriteMem32(0x00377500,0x64030002)
eeObj.WriteMem32(0x00377a20,0x64030001)
eeObj.WriteMem32(0x003774b0,0x340C4016)
eeObj.WriteMem32(0x003774c0,0x000C6400)
eeObj.WriteMem32(0x003774c4,0x46801060)
eeObj.WriteMem32(0x003774c8,0x358C9698)
eeObj.WriteMem32(0x003774cc,0x448C2000)
eeObj.WriteMem32(0x003774d0,0x46040142)
eeObj.WriteMem32(0x003774d4,0x46012802)
eeObj.WriteMem32(0x003774e4,0x46012802)
eeObj.WriteMem32(0x003774f4,0x46012802)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(patcher)

Works and looks great!! Almost a true "remaster"
Maorijigglypuff patchs born for ps4)
 

Similar threads

Back
Top