PS4 [Research]PS2 emulator configuration on PS4

Ratchet And Clank: Up Your Arsenal
SCUS-97353

*This is only meant for testing*
CLI
~ I do not currently have my PS4. Test it and tell me if it still freezes during a new game.
Code:
--ee-hook=0x003A9278,AdvanceClock,,200000

Assuming that it does not work, lower 200000 to 5000 or nop that offset and see what happens.
 
Last edited:
TOCA race driver 2:
emu used: red faction 2
Code:
--vu1-mpg-cycles=1200
--vu1=jit-sync
--vif1-instant-xfer=0

TOCA race driver 3:
emu used: red faction 2
Code:
--vu1-mpg-cycles=1200
--vu1=jit-sync
--vif1-instant-xfer=0

TOCA race driver:
emu used: red faction 2
issues:texture glitch
Code:
--vu1-mpg-cycles=1200
 
Last edited:
Stuntman Ignition [sles-54820]:
emu used: red faction 2
Code:
--iop-cycle-scalar=2.9
--vu1-di-bits=0
--vu0-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--gs-kernel-cl-up="up2x2skipinterp"
Lua:
Code:
apiRequest(1.0)
local emuObj = getEmuObject()
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=2 } )
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )
emuObj.SetGsTitleFix( "ignoreSubBuffCov", "reserved", {} )
 
Last edited:
Tom Clancy's Splinter Cell™® NTSC

CLI
Code:
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"

--vu1-di-bits=0

--gs-progressive=1
--cdvd-sector-read-cycles=4000
LUA
Code:
-- Tom Clancy's Splinter Cell™®
-- Widescreen hack by nemesis2000
-- Stutter fix by Stayhye
-- ported to PS4 lua
-- emu used=kof98um

apiRequest(0.1)

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

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


--in-game stutter fix A
eeObj.AddHook(0x002cc350, 0x78a30000, function() -- lq v1, $0000(a1)
          eeObj.AdvanceClock(21000)
          eeObj.Vu1MpgCycles(2000)
end)

--in-game stutter fix B
eeObj.AddHook(0x002cc354, 0x27bdffd0, function() -- addiu sp, sp, $ffd0
          eeObj.FastForwardClock()
end)

local WS = function()
--16:9
eeObj.WriteMem32(0x001cf514,0x8f828ff8)
eeObj.WriteMem32(0x001cf518,0x14400005)
eeObj.WriteMem32(0x001cf51c,0x3c040045)
eeObj.WriteMem32(0x001cf520,0x0c0776c8)
eeObj.WriteMem32(0x001cf524,0x24842c32)
eeObj.WriteMem32(0x001cf528,0x0c077680)
eeObj.WriteMem32(0x001cf52c,0xaf828ff8)
eeObj.WriteMem32(0x001cf530,0x8f848ff8)
eeObj.WriteMem32(0x001cf534,0x3c060045)
eeObj.WriteMem32(0x001cf538,0x0000282d)
eeObj.WriteMem32(0x001cf53c,0x24c62c52)
eeObj.WriteMem32(0x001cf540,0x0000382d)
eeObj.WriteMem32(0x001cf544,0x24080001)
eeObj.WriteMem32(0x001cf548,0x0c05a194)
eeObj.WriteMem32(0x001cf54c,0x0000482d)
eeObj.WriteMem32(0x001cf550,0x0040802d)
eeObj.WriteMem32(0x001cf554,0x0c0592ac)
eeObj.WriteMem32(0x001cf558,0xafa00088)
eeObj.WriteMem32(0x001cf55c,0x8fa60088)
eeObj.WriteMem32(0x001cf560,0x0200202d)
eeObj.WriteMem32(0x001cf564,0x8f89801c)
eeObj.WriteMem32(0x001cf568,0x0040282d)
eeObj.WriteMem32(0x001cf56c,0x0000382d)
eeObj.WriteMem32(0x001cf570,0x0000402d)
eeObj.WriteMem32(0x001cf574,0x0c058fdc)
eeObj.WriteMem32(0x001cf578,0x0000502d)
eeObj.WriteMem32(0x001cf57c,0x8fa3005c)
eeObj.WriteMem32(0x001cf580,0x0c05e844)
eeObj.WriteMem32(0x001cf584,0xac620060)
eeObj.WriteMem32(0x001cf588,0x8fa6005c)
eeObj.WriteMem32(0x001cf58c,0x3c023fd4)
eeObj.WriteMem32(0x001cf590,0x34437ae1)
eeObj.WriteMem32(0x001cf594,0x24050004)
eeObj.WriteMem32(0x001cf598,0x3c043f40) --hor val
eeObj.WriteMem32(0x001cf59c,0xe4c00070)
eeObj.WriteMem32(0x001cf5a0,0x8fa2005c)
eeObj.WriteMem32(0x001cf5a4,0xac4000c0)
eeObj.WriteMem32(0x001cf5a8,0x8fa2005c)
eeObj.WriteMem32(0x001cf5ac,0xac4000c4)
eeObj.WriteMem32(0x001cf5b0,0x8fa2005c)
eeObj.WriteMem32(0x001cf5b4,0xac4000c8)
eeObj.WriteMem32(0x001cf5b8,0x8fa2005c)
eeObj.WriteMem32(0x001cf5bc,0xe45400cc)
eeObj.WriteMem32(0x001cf5c0,0x8fa2005c)
eeObj.WriteMem32(0x001cf5c4,0xac4000e0)
eeObj.WriteMem32(0x001cf5c8,0x8fa2005c)
eeObj.WriteMem32(0x001cf5cc,0xac4000e4)
eeObj.WriteMem32(0x001cf5d0,0x8fa2005c)
eeObj.WriteMem32(0x001cf5d4,0xac4000e8)
eeObj.WriteMem32(0x001cf5d8,0x8fa2005c)
eeObj.WriteMem32(0x001cf5dc,0xe45400ec)
eeObj.WriteMem32(0x001cf5e0,0x8fa2005c)
eeObj.WriteMem32(0x001cf5e4,0xac4000f0)
eeObj.WriteMem32(0x001cf5e8,0x8fa2005c)
eeObj.WriteMem32(0x001cf5ec,0xac4000f4)
eeObj.WriteMem32(0x001cf5f0,0x8fa2005c)
eeObj.WriteMem32(0x001cf5f4,0xac4000f8)
eeObj.WriteMem32(0x001cf5f8,0x8fa2005c)
eeObj.WriteMem32(0x001cf5fc,0xe45400fc)
eeObj.WriteMem32(0x001cf600,0x8fa2005c)
eeObj.WriteMem32(0x001cf604,0xac400100)
eeObj.WriteMem32(0x001cf608,0x8fa2005c)
eeObj.WriteMem32(0x001cf60c,0xac400108)
eeObj.WriteMem32(0x001cf610,0x8fa2005c)
eeObj.WriteMem32(0x001cf614,0xac400104)
eeObj.WriteMem32(0x001cf618,0x8fa2005c)
eeObj.WriteMem32(0x001cf61c,0xac450090)
eeObj.WriteMem32(0x001cf620,0x8fa2005c)
eeObj.WriteMem32(0x001cf624,0xac400084)
eeObj.WriteMem32(0x001cf628,0x8fa2005c)
eeObj.WriteMem32(0x001cf62c,0xac400080)
eeObj.WriteMem32(0x001cf630,0x8fa2005c)
eeObj.WriteMem32(0x001cf634,0xac440088)
eeObj.WriteMem32(0x001cf638,0x8fa2005c)
eeObj.WriteMem32(0x001cf63c,0x3c043f80)
eeObj.WriteMem32(0x001cf640,0xac44008c)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(WS)

emuObj.SetGsTitleFix( "globalSet",  "reserved", { waveThreshold = 90000} )
emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )

All stutter removed. FastForward/AdvanceClock probably can be reduced, but I tested with headphones on, so I might have went OCD with the value. Didn't test too much. Feedback welcome

LUA for PAL Version
Code:
-- Tom Clancy's Splinter Cell (PAL)
-- emu used=kof98um

apiRequest(0.1)

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

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


--in-game stutter fix A
eeObj.AddHook(0x002CCAE0, 0x78a30000, function() -- lq v1, $0000(a1)
          eeObj.AdvanceClock(21000)
          eeObj.Vu1MpgCycles(2000)
end)

--in-game stutter fix B
eeObj.AddHook(0x002CCAE4, 0x27bdffd0, function() -- addiu sp, sp, $ffd0
          eeObj.FastForwardClock(8000)
end)

local WS = function()
--16:9
eeObj.WriteMem32(0x001CF890,0x3C053F40) -- 3C053F80 - X-axis

end

emuObj.AddVsyncHook(WS)

emuObj.SetGsTitleFix( "globalSet",  "reserved", { waveThreshold = 90000} )
emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )

Tom Clancy's Splinter Cell. Italian Dub Test!
VIDEO


Thanks to @Kugozx as always!
 
Star Wars - Battlefront [SLUS-20898]
emu used: red faction 2
Based on andywe config battlefront 2.

Code:
--gs-frontend-opt-mode=1
#--gs-flush-ad-xyz=safe
--safe-area-min=0.90
--vu1-di-bits=0
--vu1-opt-flags=1
--vu0-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--vu1-mpg-cycles=1300
--gs-kernel-cl-up="up2x2skipinterp"
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"

Lua:
Code:
local gpr = require("ee-gpr-alias")
apiRequest(1.0)
local emuObj  = getEmuObject()
emuObj.ThrottleMax()
 
Last edited:
@Jvn9207 do you have 'Siren Emu' for PS2toPS4? If yes, can you upload it to me somewhere? Sorry to bother man.
I'm trying to do some stuff with Gran Turismo 4, but somehow 'Jak V2 Emu' isn't workig (gives me a fucking CE-ANYTHING Error when started).
 
Star Wars - Battlefront [SLUS-20898]
emu used: red faction 2
Based on andywe config battlefront 2.

Code:
--gs-frontend-opt-mode=1
#--gs-flush-ad-xyz=safe
--safe-area-min=0.90
--vu1-di-bits=0
--vu1-opt-flags=1
--vu0-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--vu1-mpg-cycles=1300
--gs-kernel-cl-up="up2x2skipinterp"
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"

Lua:
Code:
local gpr = require("ee-gpr-alias")
apiRequest(1.0)
local eeObj   = getEEObject()
local emuObj  = getEmuObject()
local patcher = function()
emuObj.ThrottleMax()
end
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=3 } )
emuObj.AddVsyncHook(patcher)
what emu used?
 
@Vika23However, when trying to use "bully v2" to generate the customized Gran Turismo 4 that I was wanting, it gives me an error of missing .json in the 'sce_sys' folder.
I had the idea of replacing these files, and I ended up putting the same files that exist in the 'Jak V2' emulator.

I also used your .txt and .lua templates from page 164, however I keep getting errors when starting Gran Turismo 4.
Tried with custom MC, and without it, and nothing helped...
Did I do something wrong?

I'm using the GUI as I can't find the LMAN .exe to extract PKG files - I've tried using unzippers, but to no avail too, if you can help by uploading your PS4 PKG TOOL.exe from LMAN I would be grateful.

.LUA
Code:
--gametitle=Gran Turismo 4 [SCUS-97328]

apiRequest(0.1)

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

local widescreen = function()

-- Autoboot mode NTSC=0 / 480p=1 / 1080i=2
eeObj.WriteMem32(0x20A461F0,0x00000001)

-- no interlacing

--Fix
eeObj.WriteMem32(0x001D6558,0x00000000) --0C075A5A Fix shadows
eeObj.WriteMem32(0x0033F760,0x1000000B) --5440000B Graphics increment
--eeObj.WriteMem32(0x0056348C,0x00000000) --14730006

eeObj.WriteMem32(0x001D69D0,0x450000A1) --450100A1
eeObj.WriteMem32(0x003EFE0C,0x4680F320) --46806320
eeObj.WriteMem32(0x003EFE2C,0x4680F360) --46806B60

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(widescreen)

.TXT
Code:
--gs-dirty-page-policy=1 #Fix Graphics in racing licenses

--fpu-accurate-muldiv-range=0x579E00,0x57A058 #Fix video anticipated race license

#Fix incomplete letters in menu

--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
 
Last edited by a moderator:
WIP fix for Shadow of the Colossus NTSC

Code:
-- Shadow of the Colossus
-- ported to PS4 by Stayhye
-- emu used=kof98um

apiRequest(0.1)

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

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


emuObj.PadSetLightBar(0, 45,65,55)
emuObj.SetDeinterlace(true)
emuObj.SetDisplayAspectWide()

--stutter fix
eeObj.AddHook(0x00125838,0x00041878,function() -- dsll v1, a0, 1
         eeObj.AdvanceClock(8000)
         eeObj.Vu1MpgCycles(450)
end)        


local WS = function()
--
--eeObj.WriteMem32(0x0012584c,0x1000fffa)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(WS)

emuObj.SetGsTitleFix( "globalSet",  "reserved", { workLoadThreshold = 100000} )
emuObj.SetGsTitleFix( "globalSet",  "reserved", { waveThreshold = 90000} )
emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )

Work in progress. May be over-baked at the moment, but no more stuttering audio, and decent framerate, but needs to be fine-tuned.
 
WIP fix for Shadow of the Colossus NTSC

Code:
-- Shadow of the Colossus
-- ported to PS4 by Stayhye
-- emu used=kof98um

apiRequest(0.1)

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

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


emuObj.PadSetLightBar(0, 45,65,55)
emuObj.SetDeinterlace(true)
emuObj.SetDisplayAspectWide()

--stutter fix
eeObj.AddHook(0x00125838,0x00041878,function() -- dsll v1, a0, 1
         eeObj.AdvanceClock(8000)
         eeObj.Vu1MpgCycles(450)
end)      


local WS = function()
--
--eeObj.WriteMem32(0x0012584c,0x1000fffa)

emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(WS)

emuObj.SetGsTitleFix( "globalSet",  "reserved", { workLoadThreshold = 100000} )
emuObj.SetGsTitleFix( "globalSet",  "reserved", { waveThreshold = 90000} )
emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )

Work in progress. May be over-baked at the moment, but no more stuttering audio, and decent framerate, but needs to be fine-tuned.

If you have mood, you can also test part of Graphics Booster from Maori-Jigglypuff!
I test that game long time ago! Probably it help you with your tests!

Code:
gametitle=Shadow of the Colossus [SCUS-97472] (U)
comment=Patches/Codes Hacked By Maori-Jigglypuff [Savas Guercebe]

// Disable Relocation of the Instructions by Pseudo-Random Algorithm
// [!!! ABSOLUTE MANDATORY CODE, HAS ALWAYS TO BE ENABLED !!!]
patch=1,EE,00100304,word,10620033
patch=1,EE,001003D0,word,00000000
patch=1,EE,001003D4,word,10000006

// Disable Sun
patch=1,EE,0119ba48,word,03e00008
patch=1,EE,0119ba4c,word,00000000

// Disable (great deal of) Beam of Sunlight
// <return_one>
patch=1,EE,0123c200,word,03E00008
patch=1,EE,0123c204,word,24020001

// No Dust around Colossi Feet
patch=1,EE,01238cc0,word,03e00008
patch=1,EE,01238cc4,word,00000000

// No Shadow
patch=1,EE,011976a0,word,03e00008
patch=1,EE,011976a4,word,00000000

// Enhance Background Sharpness
patch=1,EE,011a6428,word,03e00008
patch=1,EE,011a642c,word,00000000
patch=1,EE,01185508,word,03e00008
patch=1,EE,0118550c,word,00000000

// No black Bars
// [Assign Value Zero to Registers $f0 and $f12 instead of
//  Black Bar causing Value 0x3F800000 from Address 0x01465aa8]
patch=1,EE,0134634c,word,44800000
patch=1,EE,013463ec,word,44806000

// Maximum Graphics Booster; (further enhance Background Sharpness)
patch=1,EE,01182c7c,word,24100001

Full patch in attached rar!
 

Attachments

@Vika23 Would you help me? I downloaded 'Bully V2' from this link https://github.com/Nazky/PS22PS4-GUI/tree/ps2emu
However, when trying to use that same emulator to generate the customized Gran Turismo 4 that I was wanting, it gives me an error of missing .json in the 'sce_sys' folder.
I had the idea of replacing these files, and I ended up putting the same files that exist in the 'Jak V2' emulator.

I also used your .txt and .lua templates from page 164, however I keep getting errors when starting Gran Turismo 4.
Tried with custom MC, and without it, and nothing helped...
Did I do something wrong?

I'm using the GUI as I can't find the LMAN .exe to extract PKG files - I've tried using unzippers, but to no avail too, if you can help by uploading your PS4 PKG TOOL.exe from LMAN I would be grateful.

.LUA
Code:
--gametitle=Gran Turismo 4 [SCUS-97328]

apiRequest(0.1)

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

local widescreen = function()

-- Autoboot mode NTSC=0 / 480p=1 / 1080i=2
eeObj.WriteMem32(0x20A461F0,0x00000001)

-- no interlacing

--Fix
eeObj.WriteMem32(0x001D6558,0x00000000) --0C075A5A Fix shadows
eeObj.WriteMem32(0x0033F760,0x1000000B) --5440000B Graphics increment
--eeObj.WriteMem32(0x0056348C,0x00000000) --14730006

eeObj.WriteMem32(0x001D69D0,0x450000A1) --450100A1
eeObj.WriteMem32(0x003EFE0C,0x4680F320) --46806320
eeObj.WriteMem32(0x003EFE2C,0x4680F360) --46806B60

emuObj.ThrottleMax()

end

emuObj.AddVsyncHook(widescreen)

.TXT
Code:
--gs-dirty-page-policy=1 #Fix Graphics in racing licenses

--fpu-accurate-muldiv-range=0x579E00,0x57A058 #Fix video anticipated race license

#Fix incomplete letters in menu

--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

For that config me and friend use eternal ring emu! But is old config, probably he will do new config for ntsc version later!

For PAL version use this!

TXT
Code:
--gs-use-deferred-l2h=1

--vif1-instant-xfer=1

--gs-use-mipmap=0
--gs-use-clut-merge=1
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"

#Fix incomplete letters in menu
--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1

--vu1-no-clamping=0
--vu1-clamp-operands=1
--vu1-clamp-results=1

--ee-cycle-scalar=1.50

#Fix video anticipated race license
--fpu-accurate-muldiv-range=0x00579EB8,0x00579EB8
--fpu-accurate-muldiv-range=0x00579EDC,0x00579EDC
--fpu-accurate-muldiv-range=0x0057A008,0x0057A008
--fpu-accurate-muldiv-range=0x0057A030,0x0057A030

--detect-idle-vif=1

LUA
Code:
--gametitle=Gran Turismo 4 [SCES-51719] (E)
--emu=siren v2

apiRequest(0.1)

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

local widescreen = function()

-- force progressive scan
eeObj.WriteMem32(0x20A57E70,0x00000001)
eeObj.WriteMem32(0x201074A0,0x24050003) --8E050004
eeObj.WriteMem32(0x2061868C,0x00000001) --00000000
eeObj.WriteMem32(0x20618694,0x00000000) --00000001

-- Autoboot in 480p
eeObj.WriteMem32(0x20436820,0xAE0516B0) --AE0010E8
eeObj.WriteMem16(0x20436910,0x10E8) --

--Field of View

-- Screen Width   (mm)
eeObj.WriteMem32(0x20A567F0,0x446E0000) -- 952mm in my case

-- Screen Height (mm)
eeObj.WriteMem32(0x20A567F4,0x4405C000) -- 535mm in my case

-- Eye Distance to Screen (mm)
eeObj.WriteMem32(0x20A567EC,0x44610000) -- 900mm in my case

-- Zoom Level (-2.0 to 2.0)
eeObj.WriteMem32(0x20A567E8,0x3f800000) -- 1.0, we already have the right FoV Better don't touch this


--Aspect Ratio

--   Single Screen Aspect Ratios
--    1 x 16:9  3f800000
--    1 x 21:9  3FAAAAAB
--    1 x 32:9  40000000

--   Triple Screen Aspect Ratios
--    3 x 16:9  40400000

eeObj.WriteMem32(0x20A567F8,0x3f800000) -- 16:9 in my case

-- disable colour correction channel shuffle effect
eeObj.WriteMem32(0x0033F8B8,0x1000000B) --5440000B

-- disable rendering of light sources
eeObj.WriteMem32(0x0033F6B0,0x10000031) --10400031

-- Fix shadows
eeObj.WriteMem32(0x001D6598,0x00000000) --0C075A6A

-- Added GT4 First Preview camera mode (far chase camera)
eeObj.WriteMem32(0x2037AFAC,0x84E30000)
eeObj.WriteMem16(0x2037AFB0,0x0002)
eeObj.WriteMem16(0x2037AFC0,0x0004)
eeObj.WriteMem32(0x2037AFD0,0x84E30000)

eeObj.WriteMem16(0x2037AFE0,0x0004)
eeObj.WriteMem8(0x0037AFF8,0x40)
eeObj.WriteMem16(0x2037B00A,0x8442)

eeObj.WriteMem32(0x206211E8,0x00010000)
eeObj.WriteMem32(0x206211EC,0x00060014)

end

emuObj.AddVsyncHook(widescreen)
 
@Stayhye I want you to get Koz to write me an essay over why this method refuses to work.

Ratchet And Clank: Up Your Arsenal
SCUS-97353

NOT WORKING! DO NOT TRY!

Code:
apiRequest(0.1)

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

local RAT = function()
eeObj.WriteMem32(0x003A9278, 0x0803FFE5)
        eeObj.WriteMem32(0x000FFF94, 0x3C150900)
eeObj.WriteMem32(0x000FFF98, 0x24160001)
eeObj.WriteMem32(0x000FFFA0, 0x02B6A822)
eeObj.WriteMem32(0x000FFFB8, 0x16A0FFF8)
eeObj.WriteMem32(0x000FFFE0, 0xAC640000)
eeObj.WriteMem32(0x000FFFEC, 0x080EA49F)

end

emuObj.AddVsyncHook(RAT)

Note: it seems that this is the method that AdvanceClock uses. Which is a delay of the instruction for a specified number of times.

Edit: ok... it looks like I forgot to give it space to branch out... will work on it later.
 
Last edited:
@Stayhye I want you to get Koz to write me an essay over why this method refuses to work.

Ratchet And Clank: Up Your Arsenal
SCUS-97353

NOT WORKING! DO NOT TRY!

Code:
apiRequest(0.1)

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

local RAT = function()
eeObj.WriteMem32(0x003A9278, 0x0803FFE5)
        eeObj.WriteMem32(0x000FFF94, 0x3C150900)
eeObj.WriteMem32(0x000FFF98, 0x24160001)
eeObj.WriteMem32(0x000FFFA0, 0x02B6A822)
eeObj.WriteMem32(0x000FFFB8, 0x16A0FFF8)
eeObj.WriteMem32(0x000FFFE0, 0xAC640000)
eeObj.WriteMem32(0x000FFFEC, 0x080EA49F)

end

emuObj.AddVsyncHook(RAT)

Note: it seems that this is the method that AdvanceClock uses. Which is a delay of the instruction for a specified number of times.

:rolling: I'll ask.
 
Killzone ̶s̶l̶o̶w̶d̶o̶w̶n̶ ̶f̶i̶x̶:

̶-̶-̶v̶u̶1̶=̶j̶i̶t̶ ̶
̶-̶-̶v̶i̶f̶1̶-̶i̶n̶s̶t̶a̶n̶t̶-̶x̶f̶e̶r̶=̶0̶

issue: ̶m̶i̶c̶r̶o̶-̶f̶r̶e̶e̶z̶e̶s̶ ̶w̶h̶e̶n̶ ̶y̶o̶u̶ ̶p̶r̶e̶s̶s̶ ̶a̶n̶y̶ ̶b̶u̶t̶t̶o̶n̶(̶i̶ ̶d̶o̶n̶'̶t̶ ̶k̶n̶o̶w̶ ̶i̶f̶ ̶t̶h̶i̶s̶ ̶c̶o̶m̶m̶a̶n̶d̶s̶ ̶c̶a̶u̶s̶e̶ ̶t̶h̶i̶s̶?).
edit: not working.
 
Last edited:
@Stayhye I want you to get Koz to write me an essay over why this method refuses to work.

Ratchet And Clank: Up Your Arsenal
SCUS-97353

NOT WORKING! DO NOT TRY!

Code:
apiRequest(0.1)

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

local RAT = function()
eeObj.WriteMem32(0x003A9278, 0x0803FFE5)
        eeObj.WriteMem32(0x000FFF94, 0x3C150900)
eeObj.WriteMem32(0x000FFF98, 0x24160001)
eeObj.WriteMem32(0x000FFFA0, 0x02B6A822)
eeObj.WriteMem32(0x000FFFB8, 0x16A0FFF8)
eeObj.WriteMem32(0x000FFFE0, 0xAC640000)
eeObj.WriteMem32(0x000FFFEC, 0x080EA49F)

end

emuObj.AddVsyncHook(RAT)

Note: it seems that this is the method that AdvanceClock uses. Which is a delay of the instruction for a specified number of times.

Edit: ok... it looks like I forgot to give it space to branch out... will work on it later.
This hook does waste EE cycles in order to complete ongoing DMA transfers. It is completely opposite of the VU0 sync issues caused by running ahead of the EE mostly.
 
Killzone slowdown fix:
Code:
--vu1=jit
--vif1-instant-xfer=0
issue: micro-freezes when you press any button(i don't know if this commands cause this?).


I also was working on this one for a while now. Those commands are not necessary. The game micro freezes upon touching the right stick regardless of commands.. Going forward and backward are full speed lol :ambivalence:

vu1=jit is default on ALL ps4 emus. No need to add.
vif1-instant-xfer=0 or 1 has no effect on this game with my tests.
vu1-di-bits=0 helps reduce micro freezes, but not enough to call it playable

CLI
Code:
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-ignore-dirty-page-border=1
--vu1-di-bits=0
--vu0-di-bits=0

--ee-const-folding=gpr

--vu1-mpg-cycles=2200
LUA
Code:
-- killzone
-- ported to PS4 Lua
-- emu used=kof98um

require("utils")

apiRequest(0.1)

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

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

local FFC = function()
   eeObj.FastForwardClock()
end

local ADVC = function()
   eeObj.AdvanceClock(1000)
end

local VU1 = function()
   eeObj.Vu1MpgCycles(1000)
end

local VIF1 = function()
   eeObj.SchedulerDelayEvent("vif1.dma", 0xff00)
end

eeObj.AddHook(0x001bff30, 0x3c020056, ADVC)

eeObj.AddHook(0x002e7b68, 0x24b00004, FFC)

local WS = function()
--60 fps
--eeObj.WriteMem32(0x2015203C,0x24420002) --fps
--eeObj.WriteMem32(0x205DA384,0x3F400000) --speed
--Unlock All Levels by MadCatz
eeObj.WriteMem32(0x201D723C,0x24020001)
--God Mode by Code Master
eeObj.WriteMem32(0x005DA45D,0x00000001)


emuObj.ThrottleMax()
end

emuObj.AddVsyncHook(WS)

local PrecompileAddrs = Queue.new( --
  {
   0x005599a0,
   0x00559a4c
 
  }
)

NOT PLAYABLE YET!!
 
Last edited:

Similar threads

Back
Top