Editing Custom Configuration Files

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 14: Line 14:




=Custom Configuration Files=
====18 Wheeler - American Pro Trucker====
====18 Wheeler - American Pro Trucker====
<br>NTSC
<br>NTSC
Line 44: Line 43:
--math.random() + math.random(1, 99)
--math.random() + math.random(1, 99)
</pre>
</pre>
====24 The Game====
====24 The Game====
'''''CLI'''''
'''''CLI'''''
Line 379: Line 377:
eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)
eeInsnReplace(0x262608, 0xE4400000, 0xAC410000)
eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)</pre>
eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)</pre>
====Cabela's Dangerous Hunts====
<br>CLI
<br>All
<pre>
#Sps fix
--vu1-no-clamping=0
</pre>


====Castlevania: Curse of Darkness====
====Castlevania: Curse of Darkness====
Line 876: Line 866:


<pre>
<pre>
#Fix for game being stuck with flickering, immovable main menu items.
#Fix for game being stuck at main menu with selections moving very fast
--fpu-no-clamping=1
--fpu-no-clamping=1
#Speedhack
#Speedhack
Line 1,032: Line 1,022:


# Emu used = Primal
# Emu used = Primal
</pre>
====Driv3r====
'''CLI'''
<br>SLUS-20587
<pre>
#Fix for AI cop car (00422D18 to 00423018 on PCSX2?)
--cop2-accurate-addsub-range=0x4b8108,0x4b8408
#Speedhacks
--vu1-di-bits=0
--vu1-mpg-cycles=2700
--ee-cycle-scalar=1.1
#Graphical fixes
--gs-flush-ad-xyz=always
--gs-use-mipmap=1
--gs-use-clut-merge=1
--gs-kernel-cl-up="up2x2simple"
</pre>
</pre>


Line 1,088: Line 1,061:


#Missing textures fix</pre>
#Missing textures fix</pre>
====Fifa 2011====
<br>CLI
<br>PAL
<pre>
#Performance & crash fix
--ee-cycle-scalar=2.5
#More performance
--vu1-mpg-cycles=6000
--vu1-di-bits=0
#Screen roughness fix
--gs-fieldswap-delay=254
#Vertical bars upscaling graphical glitch fix
--gs-kernel-cl-up="fantavision"
#RECVX emu was used.
</pre>


====Fire Pro Wrestling Z™®====
====Fire Pro Wrestling Z™®====
Line 1,688: Line 1,645:
end
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(patcher)
</pre>
====Haunting Ground====
<br>CLI
<br>NTSC
<br>Emu: Fatal Fury
<pre>
--vu1=jit-sync
--vif1-instant-xfer=0
--vu1-mpg-cycles=0
--gs-kernel-cl-up="up2x2simple"
</pre>
</pre>


Line 1,757: Line 1,703:


====Jaws Unleashed====
====Jaws Unleashed====
Config #1
<br>#Forbidden siren V2 emu used.
<br>'''CLI'''
<pre>
#Crash fix
--vu-xgkick-delay=2
#Speedhacks
--vu1-di-bits=0
--ee-cycle-scalar=1.2
--vu1-mpg-cycles=200
</pre>
<br>Config #2
<br>'''''LUA file'''''
<br>'''''LUA file'''''


Line 3,458: Line 3,391:
<br>'''''CLI'''''
<br>'''''CLI'''''
<pre>
<pre>
#Speedhacks
#Speedhacks + Clamping
--vu1-di-bits=0
--vu1-di-bits=0
--vu1-mpg-cycles=850
--vu1-const-prop=1
#Fix for flickering Spyro shadow
--vu1-mpg-cycles=800
--gs-use-clut-merge=1
--ee-cycle-scalar=1.2
#Jakv2 Emu Used
#Jakv2 Emu Used
</pre>
</pre>
Line 4,050: Line 3,983:
-- Urban Reign NTSC (SLUS-21209)  
-- Urban Reign NTSC (SLUS-21209)  
-- Multitap fix by Kozarovv
-- Multitap fix by Kozarovv
-- Cheats from GameHacking.org
-- ported to PS4 by Stayhye
-- ported to PS4 by Stayhye
-- emu used=kof98um
-- emu used=kof98um
Line 4,068: Line 4,002:


local WS = function()
local WS = function()
--Unlock Free Mode by MadCatz
eeObj.WriteMem32(0x00946634,0x00010001)
-- Init first mtap
-- Init first mtap
eeObj.WriteMem32(0x12BA88,0x24040000)
eeObj.WriteMem32(0x12BA88,0x24040000)
Line 4,079: Line 4,015:
eeObj.WriteMem32(0x0ffc1c,0x24030070)
eeObj.WriteMem32(0x0ffc1c,0x24030070)
eeObj.WriteMem32(0x3172ec,0x0803ff00)
eeObj.WriteMem32(0x3172ec,0x0803ff00)
--Unlock Challenge Mode by MadCatz
eeObj.WriteMem32(0x00946636,0x00010001)


emuObj.ThrottleMax()
--Unlock All Weapons by MadCatz
end
eeObj.WriteMem32(0x20274774,0x24030001)
eeObj.WriteMem32(0x2027477C,0xA443000E)
--Brad Hawk by Code Master
eeObj.WriteMem32(0x0094668E,0x00010001)
 
--Glen by Code Master
eeObj.WriteMem32(0x00946694,0x00010001)
 
--Torque by Code Master
eeObj.WriteMem32(0x00946696,0x00010001)
 
--Rod by Code Master
eeObj.WriteMem32(0x00946698,0x00010001)
 
--Seth by Code Master
eeObj.WriteMem32(0x0094669A,0x00010001)


emuObj.AddVsyncHook(WS)
--Nas-Tiii by Code Master
eeObj.WriteMem32(0x0094669C,0x00010001)


emuObj.SetGsTitleFix( "globalSet",  "reserved", { workLoadThreshold = 100000} )
--Em Cee by Code Master
emuObj.SetGsTitleFix( "globalSet",  "reserved", { waveThreshold = 90000} )
eeObj.WriteMem32(0x0094669E,0x00010001)
emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )


</pre>
--Real Deal by Code Master
eeObj.WriteMem32(0x009466A0,0x00010001)


====Valkyrie Profile 2: Silmeria====
--Ty by Code Master
'''''CLI'''''
eeObj.WriteMem32(0x009466A2,0x00010001)


<br>All versions
--Miguel by Code Master
eeObj.WriteMem32(0x009466A4,0x00010001)


<pre>
--Ramon by Code Master
#emu used Star Ocean 3 for black screen upon leaving town and corrupted world map
eeObj.WriteMem32(0x009466A6,0x00010001)
--gs-progressive=1
--vu-hack-triace=1
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
</pre>


'''''LUA file'''''
--Jose by Code Master
<br>SLUS_21452
eeObj.WriteMem32(0x009466A8,0x00010001)
<pre>--Proper Widescreen and No ghosting
--Valkyrie Profile 2 - Silmeria (USA) SLUS_214.52
apiRequest(1.0)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()


local code_check = eeObj.ReadMem16(0x37984C)
--Emilio by Code Master
if code_check == 0x0800 then
eeObj.WriteMem32(0x009466AA,0x00010001)
eeObj.WriteMem32(0x37984C,0x0803FC00)
end


eeObj.WriteMem32(0x000FF000, 0x3C043F40)
--Kadonashi by Code Master
eeObj.WriteMem32(0x000FF004, 0x44840800)
eeObj.WriteMem32(0x009466AC,0x00010001)
eeObj.WriteMem32(0x000FF008, 0x46000802)
eeObj.WriteMem32(0x000FF00C, 0x080DE615)
eeObj.WriteMem32(0x000FF010, 0xC66100C8)
--No ghosting in battle
eeObj.WriteMem32(0x0035FA38, 0x46001030)
end
emuObj.AddVsyncHook(patcher)
</pre>


====Vampire: Darkstalkers Collection====
--Reggie by Code Master
ALL
eeObj.WriteMem32(0x009466AE,0x00010001)
<br>CLI
 
<pre>--gs-motion-factor=50
--Zach by Code Master
--host-audio-latency=0.01
eeObj.WriteMem32(0x009466B0,0x00010001)
--gs-kernel-cl="h2lpool"
 
--gs-kernel-cl-up="h2lpool2x2"
--Colin by Code Master
--gs-h2l-list-opt=1
eeObj.WriteMem32(0x009466B2,0x00010001)
--gs-h2l-accurate-hash=1
#Fix for performance issues. PS4 Pro required for full speed.</pre>


====Van Helsing====
--Jake by Code Master
ALL
eeObj.WriteMem32(0x009466B4,0x00010001)
<br>CLI
<pre>
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--gs-adaptive-frameskip=1
--cdvd-sector-read-cycles=2000
--gs-progressive=1


#--vu0-di-bits=0
--Tong Yoon by Code Master
#--vu1-di-bits=0
eeObj.WriteMem32(0x009466B6,0x00010001)


--vu1-mpg-cycles=358
--Grimm by Code Master
eeObj.WriteMem32(0x009466B8,0x00010001)


--ee-cycle-scalar=2.8
--BK by Code Master
--iop-cycle-scalar=0.9
eeObj.WriteMem32(0x009466BA,0x00010001)


--vif1-instant-xfer=0</pre>
--Grave Digga' by Code Master
<br>'''LUA'''
eeObj.WriteMem32(0x009466BC,0x00010001)
<pre>
-- Van Helsing (SLUS-20738)
-- Wide screen patch 16:9 by paul_met
-- ported to PS4 Lua by Stayhye
-- emu used=jakx v2


apiRequest(2.2)
--Bones by Code Master
eeObj.WriteMem32(0x009466BE,0x00010001)


local gpr    = require("ee-gpr-alias")
--Booma by Code Master
eeObj.WriteMem32(0x009466C0,0x00010001)


local emuObj = getEmuObject()
--Busta by Code Master
local eeObj = getEEObject()
eeObj.WriteMem32(0x009466C2,0x00010001)
local gsObj = getGsObject()
local eeOverlay = eeObj.getOverlayObject()
local iopObj        = getIOPObject()
   


emuObj.SetDisplayAspectWide()
--Spider by Code Master
gsObj.SetDeinterlaceShift(1)  
eeObj.WriteMem32(0x009466C4,0x00010001)


local WS = function()
--Pain Killah by Code Master
--16:9
eeObj.WriteMem32(0x009466C6,0x00010001)
eeObj.WriteMem32(0x002E7FA0,0x3FE38E38)  
 
--Access All Cheats by GameMasterZer0
--Dwayne by Code Master
eeObj.WriteMem32(0x2019FFB0,0x24100001)
eeObj.WriteMem32(0x009466C8,0x00010001)
 
--Dwayne 2? by Code Master
eeObj.WriteMem32(0x009466CA,0x00010001)
 
--Shun Ying Lee by Code Master
eeObj.WriteMem32(0x009466CC,0x00010001)
 
--GD-05 by Code Master
eeObj.WriteMem32(0x009466CE,0x00010001)
 
--DR-88 by Code Master
eeObj.WriteMem32(0x009466D0,0x00010001)
 
--FK-71 by Code Master
eeObj.WriteMem32(0x009466D2,0x00010001)
 
--PT-22 by Code Master
eeObj.WriteMem32(0x009466D4,0x00010001)
 
--Bain by Code Master
eeObj.WriteMem32(0x009466D6,0x00010001)
 
--Cooper by Code Master
eeObj.WriteMem32(0x009466D8,0x00010001)
 
--Anderson by Code Master
eeObj.WriteMem32(0x009466DA,0x00010001)
 
--Taylor by Code Master
eeObj.WriteMem32(0x009466DC,0x00010001)
 
--Chris by Code Master
eeObj.WriteMem32(0x009466DE,0x00010001)
 
--Park by Code Master
eeObj.WriteMem32(0x009466E0,0x00010001)
 
--Alex by Code Master
eeObj.WriteMem32(0x009466E2,0x00010001)
 
--McKinzie by Code Master
eeObj.WriteMem32(0x009466E4,0x00010001)
 
--Napalm 99 by Code Master
eeObj.WriteMem32(0x009466E6,0x00010001)
 
--Golem by Code Master
eeObj.WriteMem32(0x009466E8,0x00010001)
 
--Riki by Code Master
eeObj.WriteMem32(0x009466EA,0x00010001)
 
--Masa by Code Master
eeObj.WriteMem32(0x009466EC,0x00010001)
 
--Hiro by Code Master
eeObj.WriteMem32(0x009466EE,0x00010001)
 
--Ryuji by Code Master
eeObj.WriteMem32(0x009466F0,0x00010001)
 
--Ye Wei by Code Master
eeObj.WriteMem32(0x009466F2,0x00010001)
 
--Sha Ying by Code Master
eeObj.WriteMem32(0x009466F4,0x00010001)
 
--Yan Jun by Code Master
eeObj.WriteMem32(0x009466F6,0x00010001)
 
--Shinkai by Code Master
eeObj.WriteMem32(0x009466F8,0x00010001)
 
--Lin Fong Lee by Code Master
eeObj.WriteMem32(0x009466FA,0x00010001)
 
--Bordin by Code Master
eeObj.WriteMem32(0x009466FC,0x00010001)
 
--Lilian by Code Master
eeObj.WriteMem32(0x009466FE,0x00010001)
 
--Kelly by Code Master
eeObj.WriteMem32(0x00946700,0x00010001)
 
--Vera Ross by Code Master
eeObj.WriteMem32(0x00946702,0x00010001)
 
--Paul Phoenix by Code Master
eeObj.WriteMem32(0x00946704,0x00010001)


--Marshall Law by Code Master
eeObj.WriteMem32(0x00946706,0x00010001)


--KG by Code Master
eeObj.WriteMem32(0x00946718,0x00010001)


emuObj.ThrottleMax()
emuObj.ThrottleMax()
Line 4,195: Line 4,205:


emuObj.AddVsyncHook(WS)
emuObj.AddVsyncHook(WS)
emuObj.SetGsTitleFix( "globalSet",  "reserved", { workLoadThreshold = 100000} )
emuObj.SetGsTitleFix( "globalSet",  "reserved", { waveThreshold = 90000} )
emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )
</pre>
</pre>


====Wallace & Gromit in Project Zoo====
====Valkyrie Profile 2: Silmeria====
'''CLI'''
'''''CLI'''''
<br>All Versions
 
<br>All versions
 
<pre>
<pre>
--gs-uprender=2x2
#emu used Star Ocean 3 for black screen upon leaving town and corrupted world map
--gs-upscale=EdgeSmooth
--gs-progressive=1
--gs-progressive=1
--gs-force-bilinear=1
--vu-hack-triace=1
--cdvd-sector-read-cycles=2000
--gs-use-mipmap=1
--force-frame-blend=1
--gs-kernel-cl="mipmap"
--vif1-instant-xfer=0
--gs-kernel-cl-up="mipmap2x2"
--vu0-di-bits=0
--vu1-di-bits=0
--vu1-mpg-cycles=800
--ee-cycle-scalar=1.5
</pre>
</pre>


====Whiplash====
'''''LUA file'''''
All versions
<br>SLUS_21452
<br>CLI
<pre>--Proper Widescreen and No ghosting
<pre>--gs-kernel-cl="mipmap"
--Valkyrie Profile 2 - Silmeria (USA) SLUS_214.52
--gs-kernel-cl-up="mipmap2x2"
apiRequest(1.0)
--gs-use-mipmap=1
local eeObj = getEEObject()
#Fix for texture glitches</pre>
local emuObj = getEmuObject()
local patcher = function()
 
local code_check = eeObj.ReadMem16(0x37984C)
if code_check == 0x0800 then
eeObj.WriteMem32(0x37984C,0x0803FC00)
end


====WinBack: Covert Operations====
eeObj.WriteMem32(0x000FF000, 0x3C043F40)
All versions
eeObj.WriteMem32(0x000FF004, 0x44840800)
<br>CLI
eeObj.WriteMem32(0x000FF008, 0x46000802)
<pre>--vu0-no-clamping=0
eeObj.WriteMem32(0x000FF00C, 0x080DE615)
--vu0-clamp-operands=1
eeObj.WriteMem32(0x000FF010, 0xC66100C8)
--vu0-clamp-results=1
--No ghosting in battle
--vu1-no-clamping=0
eeObj.WriteMem32(0x0035FA38, 0x46001030)
--vu1-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1
 
#Fix for texture glitches</pre>
====World Series of Poker - Tournament of Champions====
<br>LUA
<br>SLUS-21491
<br>Emu: War of the monsters
<pre>
apiRequest(0.1)
 
local eeObj = getEEObject()
local emuObj = getEmuObject()
 
local patcher = function()
eeObj.WriteMem32(0x0036A180, 0x0)
end
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(patcher)
</pre>
</pre>


====X-Files - Resist or Serve====
====Vampire: Darkstalkers Collection====
<br>'''''CLI'''''
ALL
<pre>--gs-uprender=2x2
<br>CLI
--gs-upscale=EdgeSmooth
<pre>--gs-motion-factor=50
--gs-adaptive-frameskip=1
--host-audio-latency=0.01
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--gs-h2l-list-opt=1
--gs-h2l-accurate-hash=1
#Fix for performance issues. PS4 Pro required for full speed.</pre>


--vu0-no-clamping=0
====Van Helsing====
--vu1-no-clamping=0
ALL
 
<br>CLI
--cdvd-sector-read-cycles=3000
<pre>
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--gs-adaptive-frameskip=1
--cdvd-sector-read-cycles=2000
--gs-progressive=1


#emu used=jak tpl v1
#--vu0-di-bits=0
</pre>
#--vu1-di-bits=0


==== X-Men Legends====
--vu1-mpg-cycles=358
'''CLI'''
<br>All versions
<pre>
--gs-uprender=2x2
--gs-upscale=motionvector
--gs-optimize-30fps=1
--cdvd-sector-read-cycles=2000
--vu-custom-min-max=0
--vu1-di-bits=0
--vu0-di-bits=0
--vu1-opt-vf00=2
--vu0-opt-vf00=2
--vu1-injection=1
--vu1=jit-sync
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--vu0-jr-cache-policy=newprog
--vu0-jalr-cache-policy=newprog


--ee-cycle-scalar=2.8
--iop-cycle-scalar=0.9


--ee-cycle-scalar=1.5
--vif1-instant-xfer=0</pre>
</pre>
<br>'''LUA'''
'''LUA'''
<br>NTSC only
<pre>
<pre>
-- X-Men™ Legends®
-- Van Helsing (SLUS-20738)
-- Wide screen patch 16:9 by paul_met
-- ported to PS4 Lua by Stayhye
-- ported to PS4 Lua by Stayhye
-- emu used=jakx v2
-- emu used=jakx v2
Line 4,298: Line 4,292:
apiRequest(2.2)
apiRequest(2.2)


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


emuObj.PadSetLightBar(0, 10,50,145)
emuObj.SetDisplayAspectWide()
emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(0)
gsObj.SetDeinterlaceShift(1)  


local WS = function()
local WS = function()
--eeObj.WriteMem32(0x005cc888,0x3c023f34)
--16:9
eeObj.WriteMem32(0x20720920,0x3FE147AE)  --In-game width widescreen 16:9
eeObj.WriteMem32(0x002E7FA0,0x3FE38E38)  
eeObj.WriteMem32(0x2072094c,0x3F000000) --Fonts Width
--Access All Cheats by GameMasterZer0
eeObj.WriteMem32(0x20720950,0x3F000000)  --Fonts Height
eeObj.WriteMem32(0x2019FFB0,0x24100001)
eeObj.WriteMem32(0x20720958,0x3F8CCCCD) --HUD & Menu Height
 
--eeObj.WriteMem32(0x20720954,0x3FA00000)  --HUD & Menu Width
 
eeObj.WriteMem32(0x20D85448,0x3F666666)  --HUD Height
eeObj.WriteMem32(0x20D85430,0x3F59999A)  --HUD Width


eeObj.Vu1MpgCycles(3450)
emuObj.ThrottleMax()
emuObj.ThrottleMax()
end
end


emuObj.AddVsyncHook(WS)
emuObj.AddVsyncHook(WS)
emuObj.SetGsTitleFix( "globalSet",  "reserved", { workLoadThreshold = 100000} )
emuObj.SetGsTitleFix( "globalSet",  "reserved", { waveThreshold = 90000} )
emuObj.SetGsTitleFix( "ignoreAreaUpdate", 0, { } )
</pre>
</pre>


==== Yu-Gi-Oh! Capsule Monsters Colosseum====
====Wallace & Gromit in Project Zoo====
All
'''CLI'''
<br>CLI
<br>All Versions
<pre>
<pre>
#Fix for freeze. RECVX emu is required.
--gs-uprender=2x2
--vu1=jit-sync
--gs-upscale=EdgeSmooth
</pre>
--gs-progressive=1
--gs-force-bilinear=1
--cdvd-sector-read-cycles=2000
--force-frame-blend=1
--vif1-instant-xfer=0
--vu0-di-bits=0
--vu1-di-bits=0
--vu1-mpg-cycles=800
--ee-cycle-scalar=1.5
</pre>


====Zatch Bell! Mamodo Battles™====
====Whiplash====
NTSC/U
All versions
<br>CLI
<br>CLI
<pre>
<pre>--gs-kernel-cl="mipmap"
#Graphical glitches fix
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
--gs-kernel-cl-up="mipmap2x2"
--gs-use-mipmap=1
--gs-use-mipmap=1
#Clamping, also for graphics
#Fix for texture glitches</pre>
--vu0-no-clamping=0
 
====WinBack: Covert Operations====
All versions
<br>CLI
<pre>--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-no-clamping=0
#likely unnecessary commands
--vu1-clamp-operands=1
--vu0-clamp-results=1
--vu1-clamp-results=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1
--cop2-clamp-results=1
--fpu-no-clamping=0
--fpu-clamp-results=1


#Jak Emu used*</pre>
#Fix for texture glitches</pre>


====Zombie Hunters 2====
====X-Files - Resist or Serve====
'''CLI'''
<br>'''''CLI'''''
<br>All versions
<pre>--gs-uprender=2x2
<pre>
--gs-upscale=EdgeSmooth
#Speedhacks
--gs-adaptive-frameskip=1
--vu1-di-bits=0
 
--ee-cycle-scalar=1.2
--vu0-no-clamping=0
--vu1-mpg-cycles=150
#Graphics clean up
--gs-use-clut-merge=1
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"
--vu1-no-clamping=0
--vu1-no-clamping=0
</pre>


====Zombie Zone====
--cdvd-sector-read-cycles=3000
'''CLI'''
 
<br>All versions
#emu used=jak tpl v1
<pre>
#Speedhacks
--vu1-di-bits=0
--ee-cycle-scalar=1.2
--vu1-mpg-cycles=150
#Graphics clean up
--gs-use-clut-merge=1
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"
</pre>
</pre>


====Coraline====
==== X-Men Legends====
'''CLI'''
'''CLI'''
<br>All versions
<br>All versions
<pre>
<pre>
--gs-uprender=2x2
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-upscale=motionvector
--gs-use-mipmap=1
--gs-optimize-30fps=1
--gs-kernel-cl-up="mipmap2x2"
--gs-scanout-offsetx=27
--gs-scanout-offsety=27
--safe-area-min=0.9
--cdvd-sector-read-cycles=2000
--cdvd-sector-read-cycles=2000
</pre>
--vu-custom-min-max=0
'''LUA'''
--vu1-di-bits=0
<br>PAL
--vu0-di-bits=0
<pre>
--vu1-opt-vf00=2
-- Coraline
--vu0-opt-vf00=2
-- emu used=KOF 98
--vu1-injection=1
--vu1=jit-sync
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--vu0-jr-cache-policy=newprog
--vu0-jalr-cache-policy=newprog


apiRequest(1.0) 


local gpr = require("ee-gpr-alias")
--ee-cycle-scalar=1.5
</pre>
'''LUA'''
<br>NTSC only
<pre>
-- X-Men™ Legends®
-- ported to PS4 Lua by Stayhye
-- emu used=jakx v2


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


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


--Widescreen hack
emuObj.PadSetLightBar(0, 10,50,145)
--Gameplay 16:9
emuObj.SetDisplayAspectWide()
--eeObj.WriteMem32(0x0026432C,0x3C014440) --3C014480 (Increases hor. axis)
gsObj.SetDeinterlaceShift(0)


--Render fix
local WS = function()
eeObj.WriteMem32(0x001A6548,0x3C013C2E) --3C013C0E
--eeObj.WriteMem32(0x005cc888,0x3c023f34)
eeObj.WriteMem32(0x20720920,0x3FE147AE)  --In-game width widescreen 16:9
eeObj.WriteMem32(0x2072094c,0x3F000000)  --Fonts Width
eeObj.WriteMem32(0x20720950,0x3F000000)  --Fonts Height
eeObj.WriteMem32(0x20720958,0x3F8CCCCD)  --HUD & Menu Height
--eeObj.WriteMem32(0x20720954,0x3FA00000)  --HUD & Menu Width
eeObj.WriteMem32(0x20D85448,0x3F666666)  --HUD Height
eeObj.WriteMem32(0x20D85430,0x3F59999A) --HUD Width


--Get rid of black bar
eeObj.Vu1MpgCycles(3450)
eeObj.WriteMem32(0x00225ea8,0x3c014000) --3c014299
emuObj.ThrottleMax()
eeObj.WriteMem32(0x00225eac,0x00000000) --3421999a
end


eeObj.WriteMem32(0x002644ec,0x3c014440) -- hor fov
emuObj.AddVsyncHook(WS)


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


local UP      = pad_bits &  0x0010
</pre>
local DOWN    = pad_bits &  0x0040
local LEFT    = pad_bits &  0x0080
local RIGHT    = pad_bits &  0x0020
local Triangle = pad_bits &  0x1000
local Cross    = pad_bits &  0x4000
local Square  = pad_bits &  0x8000
local Circle  = pad_bits &  0x2000
local L1      = pad_bits &  0x0400
local L2      = pad_bits &  0x0100
local L3      = pad_bits &  0x0002
local R1      = pad_bits &  0x0800
local R2      = pad_bits &  0x0200
local R3      = pad_bits &  0x0004
local Select  = pad_bits &  0x0001
local Start    = pad_bits &  0x0008


if (R1 ~= 0 and LEFT ~= 0) then --L3 Normal Screen
==== Yu-Gi-Oh! Capsule Monsters Colosseum====
  eeObj.WriteMem32(0x0026432C,0x3C014480) -- original value
All
end
<br>CLI
 
<pre>--vu1=jit-sync
if (R1 ~= 0 and RIGHT ~= 0) then --R3 Widescreen Screen
  eeObj.WriteMem32(0x0026432C,0x3C014440) --3C014480 (Increases hor. axis)
end


emuObj.ThrottleMax()
#MTVU Incompatibilty, Fix for Black Screen, RECVX Emu Needed
 
end
 
emuObj.AddVsyncHook(patcher)
</pre>
</pre>


====Total Overdose====
====Zatch Bell! Mamodo Battles™====
'''CLI'''
NTSC/U
<br>All versions
<br>CLI
<pre>
<pre>
--host-display-mode=16:9
#Graphical glitches fix
--host-vsync=1
--gs-kernel-cl="mipmap"
--gs-optimize=60fps
--gs-kernel-cl-up="mipmap2x2"
--cdvd-sector-read-cycles=2000
--gs-use-mipmap=1
--ps2-lang=system
#Clamping, also for graphics
 
--gs-progressive=1
--gs-motion-factor=50
 
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu1-no-clamping=0
--vu1-no-clamping=0
#likely unnecessary commands
--vu0-clamp-results=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-clamp-results=1
--fpu-no-clamping=0
--fpu-clamp-results=1


--gs-ignore-rect-correction=1
#Jak Emu used*</pre>


#ADK Damashii Emu used
====Zombie Hunters 2====
'''CLI'''
<br>All versions
<pre>
#Speedhacks
--vu1-di-bits=0
--ee-cycle-scalar=1.2
--vu1-mpg-cycles=150
#Graphics clean up
--gs-use-clut-merge=1
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"
--vu1-no-clamping=0
</pre>
</pre>


'''LUA'''
====Zombie Zone====
<br>PAL - SLES53492
'''CLI'''
<br>All versions
<pre>
<pre>
-- Total Overdose (E)(SLES-53492)
#Speedhacks
-- emu used=ADK
--vu1-di-bits=0
 
--ee-cycle-scalar=1.2
apiRequest(1.0)
--vu1-mpg-cycles=150
local eeObj = getEEObject()
#Graphics clean up
local emuObj = getEmuObject()
--gs-use-clut-merge=1
 
--gs-kernel-cl="clutmerge"
local patcher = function()
--gs-kernel-cl-up="clutmerge2x2"
--Widescreen hack 16:9
 
--00 00 80 3F 83 F9 22 3F DB 0F C9 3F 00 00 00 BF
eeObj.WriteMem32(0x20692A2C,0x3F47AE14) -- Zoom
 
--00 00 80 3F 00 00 00 00 00 00 00 00 2F 00 00 00
eeObj.WriteMem32(0x206C64C4,0x3F400000) -- Vert fov
end
 
emuObj.AddVsyncHook(patcher)
 
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=2 } )
 
emuObj.SetGsTitleFix( "forceSimpleFetch",  "reserved", {psm=0} )
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )
</pre>
</pre>


====Dark Summit====
====Coraline====
'''CLI'''
'''CLI'''
<br>All versions
<br>All versions
<pre>
<pre>
--host-display-mode=16:9
--gs-uprender=2x2
--force-pal-60hz=1
--gs-upscale=EdgeSmooth
 
--gs-use-mipmap=1
# Fahrenheit Emu used
--gs-kernel-cl-up="mipmap2x2"
--gs-scanout-offsetx=27
--gs-scanout-offsety=27
--safe-area-min=0.9
--cdvd-sector-read-cycles=2000
</pre>
</pre>
'''LUA'''
'''LUA'''
<br>PAL - SLES50575
<br>PAL
<pre>
<pre>
-- Dark Summit (PAL)
-- Coraline
-- emu used=Fahrenheit
-- emu used=KOF 98
apiRequest(1.2)    -- request version 0.1 API. Calling apiRequest() is mandatory.


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


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


--Widescreen hack 16:9
local eeObj  = getEEObject()
local emuObj = getEmuObject()


--X-Fov
local patcher = function()
--02000446 280100ae 42080546
eeObj.WriteMem32(0x003d37d0,0x08030000)


eeObj.WriteMem32(0x000c0000,0x46040002)
--Widescreen hack
eeObj.WriteMem32(0x000c0004,0x3c013f40)
--Gameplay 16:9
eeObj.WriteMem32(0x000c0008,0x00000000)
--eeObj.WriteMem32(0x0026432C,0x3C014440) --3C014480 (Increases hor. axis)
eeObj.WriteMem32(0x000c000c,0x4481f000)
eeObj.WriteMem32(0x000c0010,0x461e0002)
eeObj.WriteMem32(0x000c0014,0x080f4df5)


--Render fix
--Render fix
--003f013c 00a88144 0000b07f
eeObj.WriteMem32(0x001A6548,0x3C013C2E) --3C013C0E
eeObj.WriteMem32(0x0036444c,0x3c013f2b) --3c013f00


emuObj.ThrottleMax()
--Get rid of black bar
eeObj.WriteMem32(0x00225ea8,0x3c014000) --3c014299
eeObj.WriteMem32(0x00225eac,0x00000000) --3421999a


end
eeObj.WriteMem32(0x002644ec,0x3c014440) -- hor fov


emuObj.AddVsyncHook(WS)
local pad_bits = emuObj.GetPad()
</pre>


====Nightshade====
local UP      = pad_bits &  0x0010
'''CLI'''
local DOWN    = pad_bits &  0x0040
<P>
local LEFT    = pad_bits &  0x0080
ALL versions
local RIGHT    = pad_bits &  0x0020
<pre>
local Triangle = pad_bits &  0x1000
--host-display-mode=16:9
local Cross    = pad_bits &  0x4000
--gs-vert-precision=8
local Square  = pad_bits &  0x8000
--force-frame-blend=1
local Circle  = pad_bits &  0x2000
</pre>
local L1      = pad_bits &  0x0400
'''LUA'''
local L2      = pad_bits &  0x0100
<br>NTSC - SLUS20810
local L3      = pad_bits &  0x0002
<pre>
local R1      = pad_bits &  0x0800
-- Nightshade (SLUS-20810)
local R2      = pad_bits &  0x0200
-- Total Repair by nifengyuexia
local R3      = pad_bits &  0x0004
-- emu used=jak v2
local Select  = pad_bits &  0x0001
local Start    = pad_bits &  0x0008


apiRequest(1.0)
if (R1 ~= 0 and LEFT ~= 0) then --L3 Normal Screen
  eeObj.WriteMem32(0x0026432C,0x3C014480) -- original value
end


local eeObj = getEEObject()
if (R1 ~= 0 and RIGHT ~= 0) then --R3 Widescreen Screen
local emuObj = getEmuObject()
  eeObj.WriteMem32(0x0026432C,0x3C014440) --3C014480 (Increases hor. axis)
local patcher = function()
end


--Disable the fade-in effect to fix framerate drops caused by excessive enemies
emuObj.ThrottleMax()
eeObj.WriteMem32(0x1d1048,0x1000000f)


--Disable shadows to fix square bugs around characters
end
eeObj.WriteMem32(0x322060,0x03e00008)
 
eeObj.WriteMem32(0x322064,0x00000000)
emuObj.AddVsyncHook(patcher)
</pre>
 
====Total Overdose====
'''CLI'''
<br>All versions
<pre>
--host-display-mode=16:9
--host-vsync=1
--gs-optimize=60fps
--cdvd-sector-read-cycles=2000
--ps2-lang=system
 
--gs-progressive=1
--gs-motion-factor=50
 
--vu0-no-clamping=0
--vu1-no-clamping=0


--Disable haze effect to fix charged attack frame rate drop
--gs-ignore-rect-correction=1
eeObj.WriteMem32(0x30f3f4,0x00000000)


end
#ADK Damashii Emu used
emuObj.AddVsyncHook(patcher)
</pre>
</pre>
'''LUA'''
'''LUA'''
<br>PAL - SLES52238
<br>PAL - SLES53492
<pre>
<pre>
-- Nightshade(SLES-52238)
-- Total Overdose (E)(SLES-53492)
-- Total Repair by nifengyuexia
-- emu used=ADK
-- emu used=jak v2


apiRequest(1.0)
apiRequest(1.0)
local eeObj = getEEObject()
local eeObj = getEEObject()
local emuObj = getEmuObject()
local emuObj = getEmuObject()
local patcher = function()
local patcher = function()
--Widescreen hack 16:9


--Disable the fade-in effect to fix framerate drops caused by excessive enemies
--00 00 80 3F 83 F9 22 3F DB 0F C9 3F 00 00 00 BF
eeObj.WriteMem32(0x1d1f38,0x1000000f)
eeObj.WriteMem32(0x20692A2C,0x3F47AE14) -- Zoom


--Disable shadows to fix square bugs around characters
--00 00 80 3F 00 00 00 00 00 00 00 00 2F 00 00 00
eeObj.WriteMem32(0x326370,0x03e00008)
eeObj.WriteMem32(0x206C64C4,0x3F400000) -- Vert fov
eeObj.WriteMem32(0x326374,0x00000000)
end
 
emuObj.AddVsyncHook(patcher)


--Disable haze effect to fix charged attack frame rate drop
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } )
eeObj.WriteMem32(0x3135f4,0x00000000)
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=2 } )


end
emuObj.SetGsTitleFix( "forceSimpleFetch",  "reserved", {psm=0} )
emuObj.AddVsyncHook(patcher)
emuObj.SetGsTitleFix( "fetchFromCurrBuff", "reserved", {psm=0} )
</pre>
</pre>


====Kunoichi====
====Dark Summit====
<br>NTSC-J
'''CLI'''
<br>SLAJ-25031
<br>All versions
<br>'''LUA'''
<pre>
<pre>
-- Kunoichi(SLAJ-25031)
--host-display-mode=16:9
-- Total Repair by nifengyuexia
--force-pal-60hz=1
-- emu used=jak v2
 
# Fahrenheit Emu used
</pre>


apiRequest(1.0)
'''LUA'''
<br>PAL - SLES50575
<pre>
-- Dark Summit (PAL)
-- emu used=Fahrenheit
apiRequest(1.2)    -- request version 0.1 API. Calling apiRequest() is mandatory.


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


--Disable the fade-in effect to fix framerate drops caused by excessive enemies
local WS = function()
eeObj.WriteMem32(0x1d10f8,0x1000000f)


--Disable shadows to fix square bugs around characters
--Widescreen hack 16:9
eeObj.WriteMem32(0x324450,0x03e00008)
eeObj.WriteMem32(0x324454,0x00000000)


--Disable haze effect to fix charged attack frame rate drop
--X-Fov
eeObj.WriteMem32(0x3117f4,0x00000000)
--02000446 280100ae 42080546
eeObj.WriteMem32(0x003d37d0,0x08030000)
 
eeObj.WriteMem32(0x000c0000,0x46040002)
eeObj.WriteMem32(0x000c0004,0x3c013f40)
eeObj.WriteMem32(0x000c0008,0x00000000)
eeObj.WriteMem32(0x000c000c,0x4481f000)
eeObj.WriteMem32(0x000c0010,0x461e0002)
eeObj.WriteMem32(0x000c0014,0x080f4df5)
 
--Render fix
--003f013c 00a88144 0000b07f
eeObj.WriteMem32(0x0036444c,0x3c013f2b) --3c013f00
 
emuObj.ThrottleMax()


end
end
emuObj.AddVsyncHook(patcher)
 
emuObj.AddVsyncHook(WS)
</pre>
 
====Nightshade====
'''CLI'''
<P>
ALL versions
<pre>
--host-display-mode=16:9
--gs-vert-precision=8
--force-frame-blend=1
</pre>
</pre>
<br>'''LUA'''
'''LUA'''
<br>NTSC-J
<br>NTSC - SLUS20810
<br>SLPM-65447
<pre>
<pre>
-- Kunoichi(SLPM-65447)
-- Nightshade (SLUS-20810)
-- Total Repair by nifengyuexia
-- Total Repair by nifengyuexia
-- emu used=jak v2
-- emu used=jak v2
Line 4,666: Line 4,690:


--Disable the fade-in effect to fix framerate drops caused by excessive enemies
--Disable the fade-in effect to fix framerate drops caused by excessive enemies
eeObj.WriteMem32(0x1d1058,0x1000000f)
eeObj.WriteMem32(0x1d1048,0x1000000f)


--Disable shadows to fix square bugs around characters
--Disable shadows to fix square bugs around characters
eeObj.WriteMem32(0x321c70,0x03e00008)
eeObj.WriteMem32(0x322060,0x03e00008)
eeObj.WriteMem32(0x321c74,0x00000000)
eeObj.WriteMem32(0x322064,0x00000000)


--Disable haze effect to fix charged attack frame rate drop
--Disable haze effect to fix charged attack frame rate drop
eeObj.WriteMem32(0x30f004,0x00000000)
eeObj.WriteMem32(0x30f3f4,0x00000000)
 
end
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(patcher)
</pre>
</pre>
 
'''LUA'''
====Jak and Daxter: The Lost Frontier====
<br>PAL - SLES52238
'''CLI'''
<P>
ALL versions
<pre>
<pre>
--vu1-di-bits=0
-- Nightshade(SLES-52238)
--vu0-di-bits=1
-- Total Repair by nifengyuexia
--gs-optimize=60fps
-- emu used=jak v2


# Emu used = Red Dead Revolver
apiRequest(1.0)
</pre>


====Sled Storm====
local eeObj = getEEObject()
<P>
local emuObj = getEmuObject()
ALL versions
local patcher = function()
<pre>
--cdvd-sector-read-cycles=2000
--vu0-no-clamping=0
--vu1-no-clamping=0
--host-gamepads=2


# Emu used = Rogue v1
--Disable the fade-in effect to fix framerate drops caused by excessive enemies
</pre>
eeObj.WriteMem32(0x1d1f38,0x1000000f)


=Global Configurations=
--Disable shadows to fix square bugs around characters
<pre>Configurations made for more than one game for a specific purpose</pre>
eeObj.WriteMem32(0x326370,0x03e00008)
eeObj.WriteMem32(0x326374,0x00000000)


==SkipMpegHack (FMV skip)==
--Disable haze effect to fix charged attack frame rate drop
'''''LUA file'''''
eeObj.WriteMem32(0x3135f4,0x00000000)
<br>
All games using standard sceMpeg decoder will have their fmvs disabled by this patch.
<pre>
apiRequest(1.0)
eeObj  = getEEObject()
emuObj = getEmuObject()


local addr  = 0x100008
local skipMpeg = function()
    while(addr < 0x1000000)
    do
        if eeObj.ReadMem32(addr) == 0x8c830040 then
            if eeObj.ReadMem32(addr + 4) == 0x03e00008 then
                if eeObj.ReadMem32(addr + 8) == 0x8c620000 then
                    eeObj.WriteMem32(addr + 8, 0x24020001)
                    break
                else
                    addr = addr + 4
                end
            else
                addr = addr + 4
            end
        else
            addr = addr + 4
        end
    end
end
end
 
emuObj.AddVsyncHook(patcher)
emuObj.AddEntryPointHook(skipMpeg)
--We should remove that hook, but we never really hit entry point again.
--emuObj.RemoveEntryPointHook(skipMpeg)
</pre>
</pre>
=Incomplete configurations=
<pre>This is a list of unsuccessful, or incomplete configurations, along with information that might help others in the future.
A place for research and sharing useful info.</pre>
====Dragon ball z budokai tenkaichi====
'''LUA'''
'''LUA'''
<br>NTSC
<br>Kunoichi
 
<br>NTSC-J SLAJ-25031
Things go wrong somewhere around 0x001137A8
<pre>
<pre>
apiRequest(0.1)
-- Kunoichi(SLAJ-25031)
-- Total Repair by nifengyuexia
-- emu used=jak v2
 
apiRequest(1.0)


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


local patcher = function()
--Disable the fade-in effect to fix framerate drops caused by excessive enemies
eeObj.WriteMem32(0x0011A54C, 0x24020000)
eeObj.WriteMem32(0x1d10f8,0x1000000f)
eeObj.WriteMem32(0x0018D944, 0x24020000)
eeObj.WriteMem32(0x0018D4CC, 0x24020000)
end
emuObj.AddVsyncHook(patcher)
</pre>
====Dynasty Warriors 5 - Empires====
<br>PAL
<pre>
001428CC


-00142910
--Disable shadows to fix square bugs around characters
</pre>
eeObj.WriteMem32(0x324450,0x03e00008)
eeObj.WriteMem32(0x324454,0x00000000)


====Batman begins====
--Disable haze effect to fix charged attack frame rate drop
NTSC
eeObj.WriteMem32(0x3117f4,0x00000000)
<pre>
00409BF8 0000001E
</pre>


====Genji dawn of the samurai====
end
<br>NTSC
emuObj.AddVsyncHook(patcher)
<pre>
002F876C
</pre>
</pre>
====Bee movie====
'''LUA'''
NTSC
<br>NTSC-J SLPM-65447
<br>CLI
<br>NTSC
<br>Redfaction
<pre>
<pre>
--ee-context-switch-cycles=16000
-- Kunoichi(SLPM-65447)
--assert-path1-ad=1
-- Total Repair by nifengyuexia
--gs-kernel-cl-up="up2x2simple"
-- emu used=jak v2
</pre>


====Hitman - Blood Money====
apiRequest(1.0)
NTSC
<br>LUA
<pre>
apiRequest(0.1)


local eeObj = getEEObject()
local eeObj = getEEObject()
local emuObj = getEmuObject()
local emuObj = getEmuObject()
--Exhibits a strange DMA issue
local patcher = function()
local patcher = function()
eeObj.WriteMem32(0x0028B554, 0x240F0000)
eeObj.WriteMem32(0x0028B4B0, 0x240F0000)
end
emuObj.AddVsyncHook(patcher)
</pre>


====The Simpsons====
--Disable the fade-in effect to fix framerate drops caused by excessive enemies
<pre>
eeObj.WriteMem32(0x1d1058,0x1000000f)
--vu1-no-clamping=0
</pre>


--Disable shadows to fix square bugs around characters
eeObj.WriteMem32(0x321c70,0x03e00008)
eeObj.WriteMem32(0x321c74,0x00000000)


====Tenchu - Fatal Shadows====
--Disable haze effect to fix charged attack frame rate drop
<br>NTSC
eeObj.WriteMem32(0x30f004,0x00000000)
<br>Destroy all humans v1
end
<pre>
emuObj.AddVsyncHook(patcher)
#Removes most elements of graphical corruption
--vif1-instant-xfer=0
</pre>
</pre>
====Jak and Daxter: The Lost Frontier====
'''CLI'''
<P>
ALL versions
<pre>
<pre>
apiRequest(0.1)
--vu1-di-bits=0
-- Not the best solution, but it works.
--vu0-di-bits=1
eeInsnReplace(0x001023E0, 0xAE020000, 0x0)
--gs-optimize=60fps
-- The graphical issues start somewhere in this function 0x00134B10
</pre>


====Ratchet 4 - Deadlocked====
# Emu used = Red Dead Revolver
<br>'''CLI'''
<br>Emu = '''War of the Monsters'''
<pre>
#Fix graphics
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
#Fix VU0 sync (raise or lower it as convenient)
--ee-hook=0x000FF904,AdvanceClock,,395
</pre>
</pre>


<br>'''LUA'''
====Sled Storm====
<br>SCUS-97465
<P>
<br>Author:Scalerize
ALL versions
<pre>
<pre>
apiRequest(0.1)
--cdvd-sector-read-cycles=2000
--vu0-no-clamping=0
--vu1-no-clamping=0
--host-gamepads=2


local eeObj = getEEObject()
# Emu used = Rogue v1
local emuObj = getEmuObject()
</pre>


local patcher = function()
--jmp
eeObj.WriteMem32(0x0012710C, 0x0803FE80)
--Check if patcher's needed
eeObj.WriteMem32(0x000FFA00, 0x3C1B7120)
eeObj.WriteMem32(0x000FFA04, 0x377BCDA8)
eeObj.WriteMem32(0x000FFA08, 0x3C02000F)
eeObj.WriteMem32(0x000FFA10, 0xAC44FFF4)
eeObj.WriteMem32(0x000FFA0C, 0x3442FA00)
eeObj.WriteMem32(0x000FFA14, 0xAC45FFF0)
eeObj.WriteMem32(0x000FFA18, 0x8C44FFFC)
eeObj.WriteMem32(0x000FFA1C, 0x8C840000)
eeObj.WriteMem32(0x000FFA20, 0x149B0003)
eeObj.WriteMem32(0x000FFA28, 0x08049C44)
eeObj.WriteMem32(0x000FFA2C, 0x241B0000)
eeObj.WriteMem32(0x000FFA34, 0xAC43FFF8)
eeObj.WriteMem32(0x000FFA38, 0x3C040010)
eeObj.WriteMem32(0x000FFA3C, 0x24840004)
eeObj.WriteMem32(0x000FFA40, 0x8C830000)
eeObj.WriteMem32(0x000FFA44, 0x107B0003)
eeObj.WriteMem32(0x000FFA4C, 0x1000FFFB)
--Patcher
eeObj.WriteMem32(0x000FFA54, 0xAC44FFFC)
eeObj.WriteMem32(0x000FFA64, 0x3C030C03)
eeObj.WriteMem32(0x000FFA68, 0x3463FE48)
eeObj.WriteMem32(0x000FFA6C, 0xAC8300BC) --First 6 vi01
eeObj.WriteMem32(0x000FFA78, 0xAC8301FC)
eeObj.WriteMem32(0x000FFA84, 0xAC830354)
eeObj.WriteMem32(0x000FFA90, 0xAC830494)
eeObj.WriteMem32(0x000FFA9C, 0xAC8305EC)
eeObj.WriteMem32(0x000FFAA8, 0xAC83072C)
eeObj.WriteMem32(0x000FFAAC, 0x3C030C03)
eeObj.WriteMem32(0x000FFAB0, 0x3463FE4B)
eeObj.WriteMem32(0x000FFAB4, 0xAC83015C) --First 4 vi02
eeObj.WriteMem32(0x000FFAC0, 0xAC8302AC)
eeObj.WriteMem32(0x000FFACC, 0xAC8303F4)
eeObj.WriteMem32(0x000FFAD8, 0xAC830544)
--Physics (COP2 timing issues that I'm fixing through patches instead) (Camera, glove weapon, and gravity, but not ledge-hanging)
eeObj.WriteMem32(0x000FFADC, 0x3C032401)
eeObj.WriteMem32(0x000FFAE0, 0x346300E0)
eeObj.WriteMem32(0x000FFAE4, 0xAC831214) --(gravity) 48418800
--Ret
eeObj.WriteMem32(0x000FFC0C, 0x8C44FFF4)
eeObj.WriteMem32(0x000FFC10, 0x8C45FFF0)
eeObj.WriteMem32(0x000FFC14, 0x8C43FFF8)
eeObj.WriteMem32(0x000FFC18, 0x08049C44)
--VI01 AND VI02 to burn cycles in (000FF904) using advanceclock
eeObj.WriteMem32(0x000FF914, 0x03E00008)
eeObj.WriteMem32(0x000FF918, 0x241F0000)
eeObj.WriteMem32(0x000FF920, 0x48C00800)
eeObj.WriteMem32(0x000FF924, 0x1000FFF7)
eeObj.WriteMem32(0x000FF92C, 0x48C01000)
eeObj.WriteMem32(0x000FF930, 0x1000FFF4)
end
emuObj.AddVsyncHook(patcher)
</pre>
====Ratchet and Clank 3: Up Your Arsenal====
<br>SCUS97353
<br>Author: Kozarovv
<br>LUA
<pre>
-- 23.07.2023 Added debug stuff that should print in klog.
-- This should help us figure out why patch fail.
apiRequest(1.0)
local em  = getEmuObject()
local ee  = getEEObject()
local patcher = function()
   
    print("CONFIG: Entering patcher!")
    local base = -1
    local addr = -1
    --local spmp = -1
   
    -- Check for SP/MP, not working yet. Only SP supported.
    --spmp = ee.ReadMem32(0x13B3D8)
    --if spmp == 0x0000202d then
    --    addr = 0x13B3D8
    --else
    --    addr = 0x13B3D8
    --end
    -- Search for base.
    addr = 0x13B3D8
    while addr < 0x1000000
    do
        if ee.ReadMem32(addr) == 0x8c810014 then
            if ee.ReadMem32(addr + 4) == 0x3c067000 then
                if ee.ReadMem32(addr + 8) == 0x7cdf1ff0 then
                    base = addr
                    break
                else
                    addr = addr + 4
                end
            else
                addr = addr + 4
            end
        else
            addr = addr + 4
        end
    end
   
    -- Shouldn't be the case.
    if base == -1 then
        print("CONFIG: Base not found!")
        return
    end
    print(string.format("CONFIG: Base = %08x", base))
    -- Patch ctc2 instances.
    ee.WriteMem32(base + 0x490, 0x0C03FF0C) -- ctc2        $zero, vi2
    ee.WriteMem32(base + 0x5e0, 0x0C03FF0C) -- ctc2        $zero, vi2
    ee.WriteMem32(base + 0x728, 0x0C03FF0C) -- ctc2        $zero, vi2
    ee.WriteMem32(base + 0x878, 0x0C03FF0C) -- ctc2        $zero, vi2
    ee.WriteMem32(base + 0x9c0, 0x0C03FF0C) -- ctc2        $zero, vi2
    ee.WriteMem32(base + 0xb18, 0x0C03FF0C) -- ctc2        $zero, vi2
    ee.WriteMem32(base + 0x3f0, 0x0C03FF00) -- ctc2        $zero, vi1
    ee.WriteMem32(base + 0x530, 0x0C03FF00) -- ctc2        $zero, vi1
    ee.WriteMem32(base + 0x688, 0x0C03FF00) -- ctc2        $zero, vi1
    ee.WriteMem32(base + 0x7c8, 0x0C03FF00) -- ctc2        $zero, vi1
    ee.WriteMem32(base + 0x920, 0x0C03FF00) -- ctc2        $zero, vi1
    ee.WriteMem32(base + 0xa60, 0x0C03FF00) -- ctc2        $zero, vi1
    -- preserve ra
    ee.WriteMem32(base + 0x22c, 0xACDF1FF4)
    -- restore ra
    ee.WriteMem32(base + 0xcac, 0x8CDF1FF4)
    -- lq --> lw
    ee.WriteMem32(base + 0xd6c, 0x8c3f1ff0)
    -- delay vcall by few cycles
    ee.WriteMem32(base + 0x33c, 0x241C0020) -- modify to burn ee cycles after vcallms
    ee.WriteMem32(base + 0x340, 0x141CFFFF)
    ee.WriteMem32(base + 0x344, 0x279CFFFF)
    print("CONFIG: Dynamic patches applied!")
end
local delayer = function()
   
    local check = ee.ReadMem32(0x000ffc00)
    if check ~= 0xfcd91ff8 then
        print("CONFIG: Applying static patches!")
    end
   
    -- loop vi1
    ee.WriteMem32(0x000ffc00, 0xfcd91ff8)
    ee.WriteMem32(0x000ffc04, 0x24190080) -- modify to burn ee cycles before ctc2
    ee.WriteMem32(0x000ffc08, 0x1419ffff)
    ee.WriteMem32(0x000ffc0c, 0x2739ffff)
    ee.WriteMem32(0x000ffc10, 0x48c00800)
    ee.WriteMem32(0x000ffc14, 0x24190020) -- modify to burn ee cycles after ctc2
    ee.WriteMem32(0x000ffc18, 0x1419ffff)
    ee.WriteMem32(0x000ffc1c, 0x2739ffff)
    ee.WriteMem32(0x000ffc20, 0x03e00008)
    ee.WriteMem32(0x000ffc24, 0xdcd91ff8)
   
    -- loop vi2
    ee.WriteMem32(0x000ffc30, 0xfcd91ff8)
    ee.WriteMem32(0x000ffc34, 0x24190080) -- modify to burn ee cycles before ctc2
    ee.WriteMem32(0x000ffc38, 0x1419ffff)
    ee.WriteMem32(0x000ffc3c, 0x2739ffff)
    ee.WriteMem32(0x000ffc40, 0x48c01000)
    ee.WriteMem32(0x000ffc44, 0x24190020) -- modify to burn ee cycles after ctc2
    ee.WriteMem32(0x000ffc48, 0x1419ffff)
    ee.WriteMem32(0x000ffc4c, 0x2739ffff)
    ee.WriteMem32(0x000ffc50, 0x03e00008)
    ee.WriteMem32(0x000ffc54, 0xdcd91ff8)
   
    -- This static patch is required because game don't use level loader to load main menu.
    local new_game = ee.ReadMem32(0x3D58B8)
    local check2  = ee.ReadMem32(0x3D5D48)
    if new_game == 0x8c810014 and check2 ~= 0x0C03FF0C then
        print("CONFIG: Applying static patch for new game!")
        ee.WriteMem32(0x3D5D48, 0x0C03FF0C) -- ctc2        $zero, vi2
        ee.WriteMem32(0x3D5E98, 0x0C03FF0C) -- ctc2        $zero, vi2
        ee.WriteMem32(0x3D5FE0, 0x0C03FF0C) -- ctc2        $zero, vi2
        ee.WriteMem32(0x3D6130, 0x0C03FF0C) -- ctc2        $zero, vi2
        ee.WriteMem32(0x3D6278, 0x0C03FF0C) -- ctc2        $zero, vi2
        ee.WriteMem32(0x3D63D0, 0x0C03FF0C) -- ctc2        $zero, vi2
        ee.WriteMem32(0x3D5CA8, 0x0C03FF00) -- ctc2        $zero, vi1
        ee.WriteMem32(0x3D5DE8, 0x0C03FF00) -- ctc2        $zero, vi1
        ee.WriteMem32(0x3D5F40, 0x0C03FF00) -- ctc2        $zero, vi1
        ee.WriteMem32(0x3D6080, 0x0C03FF00) -- ctc2        $zero, vi1
        ee.WriteMem32(0x3D61D8, 0x0C03FF00) -- ctc2        $zero, vi1
        ee.WriteMem32(0x3D6318, 0x0C03FF00) -- ctc2        $zero, vi1
       
        -- preserve ra
        ee.WriteMem32(0x3D5AE4, 0xACDF1FF4)
        -- restore ra
        ee.WriteMem32(0x3D6564, 0x8CDF1FF4)
        -- lq --> lw
        ee.WriteMem32(0x3D6624, 0x8c3f1ff0)
        -- vcall
        ee.WriteMem32(0x3D5BF4, 0x241C0020) -- modify to burn ee cycles after vcallms
        ee.WriteMem32(0x3D5BF8, 0x141CFFFF)
        ee.WriteMem32(0x3D5BFC, 0x279CFFFF)
    end
end
-- hook right after level loader, ideally this should be hook inside loader...
ee.AddHook(0x13B3D8, 0x0000202D, patcher)
em.AddVsyncHook(delayer)
</pre>
<br>'''CLI'''
<br>Emu = '''War of the Monsters'''
<br>Author: '''Scalerize'''
<br>SCUS-97353
<pre>
#Fix graphics
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
#Fix VU0 sync (raise or lower it as convenient)
--ee-hook=0x000FF904,AdvanceClock,,395
</pre>
<br>Author: Scalerize
<br>LUA
<pre>
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
--jmp
eeObj.WriteMem32(0x0011F38C, 0x0803FE80)
--Check if patcher's needed
eeObj.WriteMem32(0x000FFA00, 0x3C1B7120)
eeObj.WriteMem32(0x000FFA04, 0x377BCDA8)
eeObj.WriteMem32(0x000FFA08, 0x3C02000F)
eeObj.WriteMem32(0x000FFA10, 0xAC44FFF4)
eeObj.WriteMem32(0x000FFA0C, 0x3442FA00)
eeObj.WriteMem32(0x000FFA14, 0xAC45FFF0)
eeObj.WriteMem32(0x000FFA18, 0x8C44FFFC)
eeObj.WriteMem32(0x000FFA1C, 0x8C840000)
eeObj.WriteMem32(0x000FFA20, 0x149B0003)
eeObj.WriteMem32(0x000FFA28, 0x08047CE4)
eeObj.WriteMem32(0x000FFA2C, 0x241B0000)
eeObj.WriteMem32(0x000FFA34, 0xAC43FFF8)
eeObj.WriteMem32(0x000FFA38, 0x3C040010)
eeObj.WriteMem32(0x000FFA3C, 0x24840004)
eeObj.WriteMem32(0x000FFA40, 0x8C830000)
eeObj.WriteMem32(0x000FFA44, 0x107B0003)
eeObj.WriteMem32(0x000FFA4C, 0x1000FFFB)
--Patcher
eeObj.WriteMem32(0x000FFA54, 0xAC44FFFC)
eeObj.WriteMem32(0x000FFA64, 0x3C030C03)
eeObj.WriteMem32(0x000FFA68, 0x3463FE48)
eeObj.WriteMem32(0x000FFA6C, 0xAC8300BC) --First 6 vi01
eeObj.WriteMem32(0x000FFA78, 0xAC8301FC)
eeObj.WriteMem32(0x000FFA84, 0xAC830354)
eeObj.WriteMem32(0x000FFA90, 0xAC830494)
eeObj.WriteMem32(0x000FFA9C, 0xAC8305EC)
eeObj.WriteMem32(0x000FFAA8, 0xAC83072C)
eeObj.WriteMem32(0x000FFAAC, 0x3C030C03)
eeObj.WriteMem32(0x000FFAB0, 0x3463FE4B)
eeObj.WriteMem32(0x000FFAB4, 0xAC83015C) --First 4 vi02
eeObj.WriteMem32(0x000FFAC0, 0xAC8302AC)
eeObj.WriteMem32(0x000FFACC, 0xAC8303F4)
eeObj.WriteMem32(0x000FFAD8, 0xAC830544)
--Physics (COP2 timing issues that I'm fixing through patches instead) (Camera, glove weapon, and gravity)
eeObj.WriteMem32(0x000FFADC, 0x3C032401)
eeObj.WriteMem32(0x000FFAE0, 0x346300E0)
eeObj.WriteMem32(0x000FFAE4, 0xAC8311E4) --gravity
eeObj.WriteMem32(0x000FFAF0, 0xAC833F64) --camera, glove weapon
--Ret
eeObj.WriteMem32(0x000FFC0C, 0x8C44FFF4)
eeObj.WriteMem32(0x000FFC10, 0x8C45FFF0)
eeObj.WriteMem32(0x000FFC14, 0x8C43FFF8)
eeObj.WriteMem32(0x000FFC18, 0x08047CE4)
--VI01 AND VI02 to burn cycles in (000FF904) using advanceclock
eeObj.WriteMem32(0x000FF914, 0x03E00008)
eeObj.WriteMem32(0x000FF918, 0x241F0000)
eeObj.WriteMem32(0x000FF920, 0x48C00800)
eeObj.WriteMem32(0x000FF924, 0x1000FFF7)
eeObj.WriteMem32(0x000FF92C, 0x48C01000)
eeObj.WriteMem32(0x000FF930, 0x1000FFF4)
end
emuObj.AddVsyncHook(patcher)
</pre>
====Ratchet & Clank 2 - Going Commando====
<br>'''CLI'''
<br>Emu = '''War of the Monsters'''
<br>SCUS-97268
<pre>
#Fix graphics
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
#Fix VU0 sync (raise or lower it as convenient)
--ee-hook=0x000FF904,AdvanceClock,,395
</pre>
'''LUA'''
<br>SCUS-97268
<pre>
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
--jmp
eeObj.WriteMem32(0x0011B18C, 0x0803FE80)
--Check if patcher's needed
eeObj.WriteMem32(0x000FFA00, 0x3C1B7120)
eeObj.WriteMem32(0x000FFA04, 0x377BCDA8)
eeObj.WriteMem32(0x000FFA08, 0x3C02000F)
eeObj.WriteMem32(0x000FFA10, 0xAC44FFF4)
eeObj.WriteMem32(0x000FFA0C, 0x3442FA00)
eeObj.WriteMem32(0x000FFA14, 0xAC45FFF0)
eeObj.WriteMem32(0x000FFA18, 0x8C44FFFC)
eeObj.WriteMem32(0x000FFA1C, 0x8C840000)
eeObj.WriteMem32(0x000FFA20, 0x149B0003)
eeObj.WriteMem32(0x000FFA28, 0x08046C64)
eeObj.WriteMem32(0x000FFA2C, 0x241B0000)
eeObj.WriteMem32(0x000FFA34, 0xAC43FFF8)
eeObj.WriteMem32(0x000FFA38, 0x3C040010)
eeObj.WriteMem32(0x000FFA3C, 0x24840004)
eeObj.WriteMem32(0x000FFA40, 0x8C830000)
eeObj.WriteMem32(0x000FFA44, 0x107B0003)
eeObj.WriteMem32(0x000FFA4C, 0x1000FFFB)
--Patcher
eeObj.WriteMem32(0x000FFA54, 0xAC44FFFC)
eeObj.WriteMem32(0x000FFA64, 0x3C030C03)
eeObj.WriteMem32(0x000FFA68, 0x3463FE48)
eeObj.WriteMem32(0x000FFA6C, 0xAC8300BC) --First 6 vi01
eeObj.WriteMem32(0x000FFA78, 0xAC8301FC)
eeObj.WriteMem32(0x000FFA84, 0xAC830354)
eeObj.WriteMem32(0x000FFA90, 0xAC830494)
eeObj.WriteMem32(0x000FFA9C, 0xAC8305EC)
eeObj.WriteMem32(0x000FFAA8, 0xAC83072C)
eeObj.WriteMem32(0x000FFAAC, 0x3C030C03)
eeObj.WriteMem32(0x000FFAB0, 0x3463FE4B)
eeObj.WriteMem32(0x000FFAB4, 0xAC83015C) --First 4 vi02
eeObj.WriteMem32(0x000FFAC0, 0xAC8302AC)
eeObj.WriteMem32(0x000FFACC, 0xAC8303F4)
eeObj.WriteMem32(0x000FFAD8, 0xAC830544)
--Physics (COP2 timing issues that I'm fixing through patches instead) (Camera, glove weapon, and gravity. Boxes still not fixed)
eeObj.WriteMem32(0x000FFADC, 0x3C032401)
eeObj.WriteMem32(0x000FFAE0, 0x346300E0)
eeObj.WriteMem32(0x000FFAE4, 0xAC8311F4) -- (gravity) 48418800
eeObj.WriteMem32(0x000FFAEC, 0xAC832264) -- (camera)
eeObj.WriteMem32(0x000FFAF4, 0xAC833E24) -- (glove weapon)
--Ret
eeObj.WriteMem32(0x000FFC0C, 0x8C44FFF4)
eeObj.WriteMem32(0x000FFC10, 0x8C45FFF0)
eeObj.WriteMem32(0x000FFC14, 0x8C43FFF8)
eeObj.WriteMem32(0x000FFC18, 0x08046C64)
--VI01 AND VI02 to burn cycles in (000FF904) using advanceclock
eeObj.WriteMem32(0x000FF914, 0x03E00008)
eeObj.WriteMem32(0x000FF918, 0x241F0000)
eeObj.WriteMem32(0x000FF920, 0x48C00800)
eeObj.WriteMem32(0x000FF924, 0x1000FFF7)
eeObj.WriteMem32(0x000FF92C, 0x48C01000)
eeObj.WriteMem32(0x000FF930, 0x1000FFF4)
end
emuObj.AddVsyncHook(patcher)
</pre>
<br>'''CLI'''
<br>Emu = '''War of the Monsters'''
<br>SCES-51607
<pre>
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
#Fix VU0 sync (raise or lower it as convenient)
--ee-hook=0x000FF918,AdvanceClock,,386
</pre>
<br>'''LUA'''
<br>SCES-51607
<pre>
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
--Initial jmp
eeObj.WriteMem32(0x0011B1AC, 0x0C03FE80)
--Check if patcher's needed
eeObj.WriteMem32(0x000FFA00, 0x3C1B000F)
eeObj.WriteMem32(0x000FFA04, 0x377BFA00)
eeObj.WriteMem32(0x000FFA08, 0xAF62FFFC)
eeObj.WriteMem32(0x000FFA0C, 0xAF63FFF8)
eeObj.WriteMem32(0x000FFA10, 0xAF64FFF4)
eeObj.WriteMem32(0x000FFA14, 0x3C020C03)
eeObj.WriteMem32(0x000FFA18, 0x3442FE53)
eeObj.WriteMem32(0x000FFA1C, 0x8F63FFE8)
eeObj.WriteMem32(0x000FFA20, 0x246305E0)
eeObj.WriteMem32(0x000FFA24, 0x8C630000)
eeObj.WriteMem32(0x000FFA28, 0x1062FFDF)
--Create variable and start the patcher
eeObj.WriteMem32(0x000FFA2C, 0x3C027829)
eeObj.WriteMem32(0x000FFA30, 0x34420010)
eeObj.WriteMem32(0x000FFA34, 0x3C030010)
eeObj.WriteMem32(0x000FFA38, 0x8C640000)
eeObj.WriteMem32(0x000FFA3C, 0x10820003)
eeObj.WriteMem32(0x000FFA44, 0x24630004)
eeObj.WriteMem32(0x000FFA48, 0x1000FFFB)
eeObj.WriteMem32(0x000FFA50, 0xAF63FFE8)
--VI01 patcher
eeObj.WriteMem32(0x000FFA54, 0x3C020C03)
eeObj.WriteMem32(0x000FFA58, 0x3442FE50)
eeObj.WriteMem32(0x000FFA5C, 0xAC620158)
eeObj.WriteMem32(0x000FFA60, 0xAC620298)
eeObj.WriteMem32(0x000FFA64, 0xAC6203F0)
eeObj.WriteMem32(0x000FFA68, 0xAC620530)
eeObj.WriteMem32(0x000FFA6C, 0xAC620688)
eeObj.WriteMem32(0x000FFA70, 0xAC6207C8)
--VI02 patcher
eeObj.WriteMem32(0x000FFA74, 0x3C020C03)
eeObj.WriteMem32(0x000FFA78, 0x3442FE53)
eeObj.WriteMem32(0x000FFA7C, 0xAC6201F8)
eeObj.WriteMem32(0x000FFA80, 0xAC620348)
eeObj.WriteMem32(0x000FFA84, 0xAC620490)
eeObj.WriteMem32(0x000FFA88, 0xAC6205E0)
--Physics
eeObj.WriteMem32(0x000FFA8C, 0x3C022401)
eeObj.WriteMem32(0x000FFA90, 0x344200E0)
eeObj.WriteMem32(0x000FFA94, 0xAC621290) -- (gravity) 48418800
--Ret
eeObj.WriteMem32(0x000FF9A8, 0x8F62FFFC)
eeObj.WriteMem32(0x000FF9AC, 0x8F63FFF8)
eeObj.WriteMem32(0x000FF9B0, 0x8F64FFF4)
eeObj.WriteMem32(0x000FF9BC, 0x241B0000)
eeObj.WriteMem32(0x000FF9C0, 0x08047D78)
--B to ret
eeObj.WriteMem32(0x000FFABC, 0x1000FFBA)
-- CTC2 cmnds
eeObj.WriteMem32(0x000FF928, 0x03E00008)
eeObj.WriteMem32(0x000FF92C, 0x241F0000)
eeObj.WriteMem32(0x000FF940, 0x48C00800)
eeObj.WriteMem32(0x000FF944, 0x1000FFF4)
eeObj.WriteMem32(0x000FF94C, 0x48C01000)
eeObj.WriteMem32(0x000FF950, 0x1000FFF1)
end
emuObj.AddVsyncHook(patcher)
</pre>
====Ratchet & Clank 1====
<br>'''CLI'''
<br>Emu = '''War of the Monsters'''
<br>SCUS-97199
<pre>
#Fix graphics
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
#Fix VU0 sync (raise or lower it as convenient)
--ee-hook=0x000FF904,AdvanceClock,,385
</pre>
'''LUA'''
<br>SCUS-97199
<br>Author:Scalerize
<pre>
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
--jmp
eeObj.WriteMem32(0x00118CAC, 0x0803FE80)
--Check if patcher's needed
eeObj.WriteMem32(0x000FFA00, 0x3C1B7120)
eeObj.WriteMem32(0x000FFA04, 0x377BCDA8)
eeObj.WriteMem32(0x000FFA08, 0x3C02000F)
eeObj.WriteMem32(0x000FFA10, 0xAC44FFF4)
eeObj.WriteMem32(0x000FFA0C, 0x3442FA00)
eeObj.WriteMem32(0x000FFA14, 0xAC45FFF0)
eeObj.WriteMem32(0x000FFA18, 0x8C44FFFC)
eeObj.WriteMem32(0x000FFA1C, 0x8C840000)
eeObj.WriteMem32(0x000FFA20, 0x149B0003)
eeObj.WriteMem32(0x000FFA28, 0x0804632C)
eeObj.WriteMem32(0x000FFA2C, 0x241B0000)
eeObj.WriteMem32(0x000FFA34, 0xAC43FFF8)
eeObj.WriteMem32(0x000FFA38, 0x3C040010)
eeObj.WriteMem32(0x000FFA3C, 0x24840004)
eeObj.WriteMem32(0x000FFA40, 0x8C830000)
eeObj.WriteMem32(0x000FFA44, 0x107B0003)
eeObj.WriteMem32(0x000FFA4C, 0x1000FFFB)
--Patcher
eeObj.WriteMem32(0x000FFA54, 0xAC44FFFC)
eeObj.WriteMem32(0x000FFA64, 0x3C030C03)
eeObj.WriteMem32(0x000FFA68, 0x3463FE48)
eeObj.WriteMem32(0x000FFA6C, 0xAC8300BC) --First 6 vi01
eeObj.WriteMem32(0x000FFA78, 0xAC8301FC)
eeObj.WriteMem32(0x000FFA84, 0xAC830354)
eeObj.WriteMem32(0x000FFA90, 0xAC830494)
eeObj.WriteMem32(0x000FFA9C, 0xAC8305EC)
eeObj.WriteMem32(0x000FFAA8, 0xAC83072C)
eeObj.WriteMem32(0x000FFAAC, 0x3C030C03)
eeObj.WriteMem32(0x000FFAB0, 0x3463FE4B)
eeObj.WriteMem32(0x000FFAB4, 0xAC83015C) --First 4 vi02
eeObj.WriteMem32(0x000FFAC0, 0xAC8302AC)
eeObj.WriteMem32(0x000FFACC, 0xAC8303F4)
eeObj.WriteMem32(0x000FFAD8, 0xAC830544)
--Physics (COP2 timing issues that I'm fixing through patches instead) (Camera, and gravity. Boxes and glove weapon still not fixed)
eeObj.WriteMem32(0x000FFADC, 0x3C032401)
eeObj.WriteMem32(0x000FFAE0, 0x346300E0)
eeObj.WriteMem32(0x000FFAE4, 0xAC8311B0) -- 48418800 (gravity)
--Ret
eeObj.WriteMem32(0x000FFC0C, 0x8C44FFF4)
eeObj.WriteMem32(0x000FFC10, 0x8C45FFF0)
eeObj.WriteMem32(0x000FFC14, 0x8C43FFF8)
eeObj.WriteMem32(0x000FFC18, 0x0804632C)
--VI01 AND VI02 to burn cycles in (000FF904) using advanceclock
eeObj.WriteMem32(0x000FF914, 0x03E00008)
eeObj.WriteMem32(0x000FF918, 0x241F0000)
eeObj.WriteMem32(0x000FF920, 0x48C00800)
eeObj.WriteMem32(0x000FF924, 0x1000FFF7)
eeObj.WriteMem32(0x000FF92C, 0x48C01000)
eeObj.WriteMem32(0x000FF930, 0x1000FFF4)
end
emuObj.AddVsyncHook(patcher)
</pre>
====Robot Alchemic Drive====
'''LUA'''
<pre>
apiRequest(0.1)
local emuObj = getEmuObject()
local iopObj        = getIOPObject()
local patcher = function()
--Audio fix(?)
--iopObj.WriteMem32(0x000F5CBC, 0x24C6FFFF)
iopObj.WriteMem32(0x000F5764, 0x24064000)
end
emuObj.AddVsyncHook(patcher)
</pre>
====Shadow Man - 2econd Coming====
<br>SLUS204.13
<pre>
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
--Once it reaches to the TEQ, the game crashes.
eeObj.WriteMem32(0x00231AF0, 0x0808C6AF)
end
emuObj.AddVsyncHook(patcher)
</pre>
====Forbidden Siren 2====
'''CLI'''
<br>NTSC
<pre>
--vu-xgkick-delay=9
</pre>
====Wild Arms 4====
'''CLI'''
<pre>
#Fatal Fury emu
#Gamefixes
--vu-hack-triace=1
--iop-hook=0xAD808,AdvanceClock,,3000
</pre>
===sceTtyPrint===
This should print some debug info in emulog/klog, pcsx2 a like. Pattern based on Smugglers Run 2 and Spiderman 3. So first test should be done with those games. Spiderman should print something like "Legal screen is 512 x 256." first. Smugglers Run 2 "Timezone=60". Assuming it work, this can give some valuable info about VIF1/GIF hangs, which are 50% of issues in those crappy emus.
--sceTtyWrite take:
--a0 = string ptr
--a1 = size (we need to overwrite str_ptr + size with 0 to make it 0 terminated)
-- best tty pattern for now = "0A 00 07 24 0D 00 05 24 0C 00 C4 24"
apiRequest(1.0)
eeObj  = getEEObject()
emuObj = getEmuObject()
local printerino = function()
    local str_ptr  = eeObj.GetGpr(4) -- a0
    local str_size = eeObj.GetGpr(5) -- a1
   
    -- Add zero terminator, not sure if we need it...
    -- But i don't see any way to pass how long string should be.
    -- So just 0 terminate it just in case.
    -- Note: PS2 pass newline as last character, maybe we don't need it.
    -- if it break anything, or looks weird, then remove +1 from below write.
    eeObj.WriteMem8(str_ptr + str_size + 1, 0)
   
    local str = eeObj.ReadMemStr(str_ptr)
    print(string.format("PS2 DEBUG: %s", str))
end
local addr  = 0x100008
local ttySearch = function()
print("PS2 DEBUG: Entering ttySearch.")
    while(addr < 0x1000000 )
    do
        if eeObj.ReadMem32(addr) == 0x2407000A then
            if eeObj.ReadMem32(addr + 4) == 0x2405000D then
                if eeObj.ReadMem32(addr + 8) == 0x24C4000C then
-- I'm sorry...
local check = 0
local full_op = 0
while(check ~= 0x27BD and addr ~= 0x100008)
do
    addr = addr - 4
full_op = eeObj.ReadMem32(addr)
check = full_op >> 16
end
                    break -- first loop
                else
                    addr = addr + 4
                end
            else
                addr = addr + 4
            end
        else
            addr = addr + 4
        end
    end
if addr < 0x1000000 and not addr < 0x100008 then
    print(string.format("Found sceTtyWrite function at: 0x%X", addr))
eeObj.AddHook(addr, full_op, printerino)
else
    print("sceTtyWrite function not found!")
    end
end
emuObj.AddEntryPointHook(ttySearch)


{{Reverse Engineering}}<noinclude>
{{Reverse Engineering}}<noinclude>
[[Category:Main]]
[[Category:Main]]
</noinclude>
</noinclude>
Please note that all contributions to PS4 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS4 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)