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 1: Line 1:
Configuration files created by users, to improve PS2 emulator compatibility on PS4.
Configuration files created by users, to improve PS2 emulator compatibility on PS4.


* Describing the purpose of each command in your configuration is recommended.
* Describing what Your configuration is doing is recommended
* On cli you can do it with <code>#</code> and on a lua you can do it with <code>--</code>
* On cli you can do it with <code>#</code> and on a lua you can do it with <code>--</code>


{{ambox
| type = content
| text = Editor's note
While there are many [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/ sources] describing [[Custom Configuration Files]], you are welcome to test these and cross-post them here or elsewhere
If doing so, please be aware that there is no "copyright" per se but you are of course welcome to credit yourself or another person if you can confirm your testing results (as describing above, you can do so by the description of what Your configuration is actually doing)
Please post only custom configurations which you have actually tested and don't post any based on speculation only because the same code is working on a <span class="plainlinks">[{{ps3wikiurl}}PS2_Emulation PS3]</span> {{InvertibleImage|Icon_ps3.png|24px|This Article leads towards PS3 Developer Wiki}} or on a PC using [https://wiki.pcsx2.net/Main_Page PCSX2] (only because Sony decided to sell a non-upgradable x86/x64 "box" doesn't mean that it's equal to a PC). Thank you.
}}
=Custom Configuration Files=
====18 Wheeler - American Pro Trucker====
====18 Wheeler - American Pro Trucker====
<br>NTSC
<br>NTSC
Line 44: Line 33:
--math.random() + math.random(1, 99)
--math.random() + math.random(1, 99)
</pre>
</pre>
====24 The Game====
====24 The Game====
'''''CLI'''''
'''''CLI'''''
<pre>
<pre>
--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
--ee-cycle-scalar=1.9
--safe-area-min=1.0
--safe-area-min=1.0
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu1-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1




Line 68: Line 70:
local gpr = require("ee-gpr-alias")
local gpr = require("ee-gpr-alias")


apiRequest(0.1)
apiRequest(1.0)


local eeObj = getEEObject()
local eeObj = getEEObject()
Line 153: Line 155:


<br>SCES_504.10
<br>SCES_504.10
<pre>apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.
<pre>apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.


-- Wrong sky shader
-- Wrong sky shader
Line 189: Line 191:
<br>SCES_540.41
<br>SCES_540.41


<pre>apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.
<pre>apiRequest(2.2) -- request version 0.1 API. Calling apiRequest() is mandatory.


-- Wrong sky shader
-- Wrong sky shader
Line 245: Line 247:


<pre>--emu used=jakx v2
<pre>--emu used=jakx v2
apiRequest(0.1)
apiRequest(1.0)
local eeObj = getEEObject()
local eeObj = getEEObject()
local emuObj = getEmuObject()
local emuObj = getEmuObject()
Line 295: Line 297:
<br>All Versions
<br>All Versions
<pre>
<pre>
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--host-display-mode=16:9
--vif1-instant-xfer=0
--vif1-instant-xfer=0
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu1-clamp-results=1
</pre>
</pre>


Line 319: Line 329:


<pre>--vu0-no-clamping=0
<pre>--vu0-no-clamping=0
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
--cop2-clamp-results=1


#SPS Fix</pre>
#SPS Fix</pre>
Line 354: Line 367:
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 439: Line 444:
==== Call of Duty: World at War - Final Fronts ====
==== Call of Duty: World at War - Final Fronts ====
<pre>
<pre>
--ee-kernel-hle=1
--ee-injection-kernel=1
--ee-injection-title=1
--ee-cycle-scalar=1.9
--ee-cycle-scalar=1.9
--safe-area-min=1.0
--safe-area-min=1.0
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu1-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1
# Fixed low framrate issue, !!!JAK EMULATOR Used!!!
# Fixed low framrate issue, !!!JAK EMULATOR Used!!!
</pre>
</pre>
Line 453: Line 467:
<pre>--vu0-no-clamping=0
<pre>--vu0-no-clamping=0
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-clamp-operands=1
--vu1-clamp-results=1


# fix graphic and physics, there are still issue with fmv, and minor stering issue.</pre>
# fix graphic and physics, there are still issue with fmv, and minor stering issue.</pre>
Line 473: Line 491:
-- emu used=KOF 98
-- emu used=KOF 98


apiRequest(0.1)  
apiRequest(1.0)  


local gpr = require("ee-gpr-alias")
local gpr = require("ee-gpr-alias")
Line 521: Line 539:
-- emu used=KOF 2000
-- emu used=KOF 2000


apiRequest(0.1)
apiRequest(1.0)  


local gpr = require("ee-gpr-alias")
local gpr = require("ee-gpr-alias")
Line 545: Line 563:
'''SLPM-62114_cli.conf'''
'''SLPM-62114_cli.conf'''
<pre>
<pre>
--gs-uprender=2x2
--gs-upscale=edgesmooth
--host-display-mode=16:9
--force-frame-blend=1
--force-frame-blend=1
--gs-kernel-cl="h2lpool"
--gs-kernel-cl="h2lpool"
Line 558: Line 579:
-- emu used=KOF 98
-- emu used=KOF 98


apiRequest(0.1)
apiRequest(1.0)


local gpr = require("ee-gpr-alias")
local gpr = require("ee-gpr-alias")
Line 689: Line 710:
<br>'''''CLI'''''
<br>'''''CLI'''''
<pre>
<pre>
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-adaptive-frameskip=1
--gs-adaptive-frameskip=1
--force-frame-blend=1
--force-frame-blend=1
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu1-di-bits=0
--vu1-di-bits=0
--vu1=jit-sync
--vu1=jit-sync
--vu1-mpg-cycles=2200
--vu1-mpg-cycles=2200
--vu1-jalr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
Line 710: Line 735:
local gpr = require("ee-gpr-alias")
local gpr = require("ee-gpr-alias")


apiRequest(0.1)
apiRequest(2.0)


local emuObj = getEmuObject()
local emuObj = getEmuObject()
Line 780: Line 805:
--DOA 2 Hardcore NTSC US
--DOA 2 Hardcore NTSC US


apiRequest(0.1)
apiRequest(2.2)


local gpr      = require("ee-gpr-alias")
local gpr      = require("ee-gpr-alias")
Line 831: Line 856:


<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 927: Line 952:
</pre>
</pre>


====Drakengard 2====
====Dreamworks: Shrek the third====
'''CLI'''
<br>All Versions
<br>Emu: '''War of the Monsters'''
<br>'''CLI'''
<pre>
<pre>
#Fix upscaling artifacts (flames and lights)
#Slowdown fixes
--gs-kernel-cl-up="up2x2simple"
#Use Mipmap for sharper terrain textures
--gs-use-mipmap=1
#Fix faintly flickering floor shadow textures
--gs-use-clut-merge=1
#Use EE clamping
--fpu-no-clamping=0
--cop2-no-clamping=0
#Speedhacks
--vu1-di-bits=0
--vu1-di-bits=0
--vu1-mpg-cycles=300
--vu1-mpg-cycles=600
</pre>
--ee-cycle-scalar=1.2


====Dreamworks: Shrek the third====
<br>All Versions
<br>'''CLI'''
<pre>
#Slowdown fixes
--vu1-di-bits=0
--vu1-mpg-cycles=700
#Disable try to fix graphics if creating using ps2fpkg v0.6
#Disable try to fix graphics if creating using ps2fpkg v0.6
</pre>
</pre>
Line 1,003: Line 1,012:


# 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,027: Line 1,019:
<br>All Versions
<br>All Versions


<pre>
<pre>--gs-uprender=2x2
--gs-upscale=EdgeSmooth
 
--host-display-mode=16:9
--framelimit-mode=normal
--framelimit-mode=normal
#Fix for missing character/world parts
#Fix for missing character/world parts
Line 1,056: Line 1,051:


#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,146: Line 1,125:
#use the rest just in case
#use the rest just in case
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1
#Fixes disappearing models during cutscenes and during gameplay</pre>
#Fixes disappearing models during cutscenes and during gameplay</pre>


Line 1,153: Line 1,138:
<br>CLI
<br>CLI
<pre>--fpu-no-clamping=0
<pre>--fpu-no-clamping=0
--fpu-clamp-results=1
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
--cop2-clamp-results=1
#fix for missing character models
#fix for missing character models
--vu-xgkick-delay=0
--vu-xgkick-delay=0.58
#KOF98Emu used</pre>
#KOF98Emu used</pre>


====Galarians: Ash====
====Galarians: Ash====
'''''CLI'''''
'''''CLI'''''
<pre>
<pre>--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-adaptive-frameskip=1
--gs-adaptive-frameskip=1


Line 1,176: Line 1,166:


</pre>
</pre>
'''''LUA file'''''
'''''LUA file'''''
<pre>
<pre>
Line 1,184: Line 1,173:
local gpr = require("ee-gpr-alias")
local gpr = require("ee-gpr-alias")


apiRequest(0.1)
apiRequest(2.2)


local eeObj = getEEObject()
local eeObj = getEEObject()
Line 1,199: Line 1,188:
</pre>
</pre>


====Genji Dawn of the Samurai====
====Ghost in the Shell: Stand Alone Complex====
<br>'''LUA'''
<br>'''''LUA file'''''
<br>NTSC (SCUS-97471)
 
<br>Emu = War Of The Monsters
<br>SLES_530.20
<pre>
apiRequest(0.1)


local iopObj = getIOPObject()
<pre>apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.
local emuObj = getEmuObject()
 
local patcher = function()
--Fix the IOP loop (1455FF27) causing a random freeze.
iopObj.WriteMem32(0x0006DCCC, 0x0)
end
emuObj.AddVsyncHook(patcher)
</pre>
 
====Ghost in the Shell: Stand Alone Complex====
<br>'''''LUA file'''''
 
<br>SLES_530.20
 
<pre>apiRequest(0.1) -- request version 0.1 API. Calling apiRequest() is mandatory.


eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)
eeInsnReplace(0x10BC88, 0x4BEC682C, 0x48468800)
Line 1,402: Line 1,374:
<br>CLI
<br>CLI
<pre>
<pre>
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-kernel-cl="h2lpool"
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--gs-kernel-cl-up="h2lpool2x2"
--host-display-mode=16:9
#emu used=psychonauts v2
#emu used=psychonauts v2
</pre>
</pre>
Line 1,411: Line 1,387:
local gpr = require("ee-gpr-alias")
local gpr = require("ee-gpr-alias")


apiRequest(0.1)
apiRequest(1.0)


local eeObj = getEEObject()
local eeObj = getEEObject()
Line 1,453: Line 1,429:
<br>CLI
<br>CLI
<pre>
<pre>
--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-kernel-cl="h2lpool"
--gs-kernel-cl="h2lpool"
--gs-kernel-cl-up="h2lpool2x2"
--gs-kernel-cl-up="h2lpool2x2"
Line 1,470: Line 1,448:
<pre>--vu0-no-clamping=0
<pre>--vu0-no-clamping=0
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1


#fix for graphical glitches, specially the missing ground.
#fix for graphical glitches, specially the missing ground.
Line 1,495: Line 1,479:
<br>'''US'''
<br>'''US'''
<pre>
<pre>
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-adaptive-frameskip=1
--gs-adaptive-frameskip=1
--gs-kernel-cl="h2lpool"
--gs-kernel-cl="h2lpool"
Line 1,501: Line 1,487:


--ee-cycle-scalar=2.0
--ee-cycle-scalar=2.0
--vu1-mpg-cycles=2000
--vu1-mpg-cycles=2000
--vu1-di-bits=0
--vu1-di-bits=0
--vu1=trans
#Cdvd timing
#Cdvd timing
--iop-cycle-scalar=0.20
--iop-cycle-scalar=0.20
Line 1,514: Line 1,502:
-- 03 Corrupted green lines around the objects, uprendering problem
-- 03 Corrupted green lines around the objects, uprendering problem
-- Slowdowns and performances patched in cli.conf file
-- Slowdowns and performances patched in cli.conf file
apiRequest(0.1)
apiRequest(2.2)


local emuObj = getEmuObject()
local emuObj = getEmuObject()
Line 1,528: Line 1,516:
====God of War 2====
====God of War 2====
'''''CLI'''''
'''''CLI'''''
<pre>
<pre>--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-adaptive-frameskip=1
--gs-adaptive-frameskip=1
--ee-cycle-scalar=0.62
--ee-cycle-scalar=0.62
Line 1,536: Line 1,525:
--vu1-jalr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--cdvd-sector-read-cycles=4000
--cdvd-sector-read-cycles=4000
--host-audio-latency=1.6
--host-display-mode=16:9


*Jakx Emu used*</pre>
*Jakx Emu used*</pre>
Line 1,543: Line 1,534:
-- ported to PS4  
-- ported to PS4  


apiRequest(0.1)
apiRequest(2.2)


local gpr    = require("ee-gpr-alias")
local gpr    = require("ee-gpr-alias")
Line 1,644: Line 1,635:
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,662: Line 1,642:
<br>All Versions
<br>All Versions


<pre>
<pre>--gs-uprender=2x2
--gs-upscale=EdgeSmooth
 
--host-display-mode=16:9
 
--vu1-no-clamping=0
--vu1-no-clamping=0
#fix for graphical glitches.
#fix for graphical glitches.
</pre>
</pre>
Line 1,707: Line 1,693:


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


<pre>
<pre>


apiRequest(0.1)
apiRequest(1.0)
local eeObj = getEEObject()
local eeObj = getEEObject()
local emuObj = getEmuObject()
local emuObj = getEmuObject()
Line 1,755: Line 1,728:


<pre>--vu0-no-clamping=0
<pre>--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu1-clamp-operands=1
--vu1-clamp-results=1


#fix for flickering polygons.</pre>
#fix for flickering polygons.</pre>
Line 1,913: Line 1,890:
<br>SLES-51093
<br>SLES-51093
<br>'''''CLI'''''
<br>'''''CLI'''''
<pre>
<pre>--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--host-display-mode=16:9
--cdvd-sector-read-cycles=5000
--cdvd-sector-read-cycles=5000
#emu used=rotk v1
#emu used=rotk v1
Line 1,990: Line 1,969:
-- emu used=KOF2000                              --
-- emu used=KOF2000                              --
                                                                                              
                                                                                              
apiRequest(0.1)                                
apiRequest(1.0)                                  


local eeObj = getEEObject()  
local eeObj = getEEObject()  
Line 2,107: Line 2,086:
<pre>-- emu used=kinetica v2
<pre>-- emu used=kinetica v2


apiRequest(0.1)   
apiRequest(1.0)   


local gpr = require("ee-gpr-alias")
local gpr = require("ee-gpr-alias")
Line 2,138: Line 2,117:
'''''CLI'''''
'''''CLI'''''
<pre>
<pre>
--ee-kernel-hle=1
--ee-injection-kernel=1
--ee-injection-title=1
--ee-block-validation=PageProt
--ee-block-validation=PageProt
--vu1-opt-flags=2
--vu1-opt-flags=2
Line 2,170: Line 2,152:
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1
# Fixed green, blue and red graphical issues. The game works better.
# Fixed green, blue and red graphical issues. The game works better.
</pre>
</pre>
Line 2,269: Line 2,257:


</pre>
</pre>
==== Need For Speed: Carbon Collector Edition ====
'''''CLI "SLUS-21494_cli.conf"'''''<syntaxhighlight>
--fpu-accurate-range=0x162800,0x162900
--vu1-mpg-cycles=500
</syntaxhighlight>'''''LUA'''''<syntaxhighlight>
-- Need for Speed - Carbon (SLUS-21494)
-- -> use KOF2000 emu // PS4 Pro optimized (boost mode enabled)
-- MD5: 4F325C12F0D07E5C138CD779E0EF2F94
local gpr = require("ee-gpr-alias")
apiRequest(0.1)
local eeObj = getEEObject()
local emuObj = getEmuObject()
local patcher = function()
eeObj.WriteMem32(0x00263ab0,0x00000000) --overlay/uprender/speed fix
-- force 480p/progressive
eeObj.WriteMem32(0x005408bc,0x3c050000)
eeObj.WriteMem32(0x005408c4,0x3c060050)
eeObj.WriteMem32(0x005408cc,0x3c070001)
end
emuObj.AddVsyncHook(patcher)
emuObj.SetDisplayAspectWide() -- 16:9
-- Graphic improvement: removes corrupted lines on screen with uprender on for PAL/NTSC-U/NTSC-J version
emuObj.SetGsTitleFix( "forceSimpleFetch", "reserved", { texMode=1 } ) --texMode=1
</syntaxhighlight>


====Need for Speed Underground 2====
====Need for Speed Underground 2====
Line 2,304: Line 2,263:
<br>SLUS-21065
<br>SLUS-21065


<pre>apiRequest(0.1)
<pre>apiRequest(1.0)


local eeObj = getEEObject()
local eeObj = getEEObject()
Line 2,339: Line 2,298:
--gs-kernel-cl-up="mipmap2x2"
--gs-kernel-cl-up="mipmap2x2"
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu0-clamp-results=1
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu1-clamp-results=1
--cop2-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
#Fixes for slowdowns
#Fixes for slowdowns
Line 2,385: Line 2,347:
<br>SLES-53959
<br>SLES-53959
<pre>
<pre>
--gs-uprender=2x2
--gs-upscale=edgesmooth
--cdvd-sector-read-cycles=2000
--cdvd-sector-read-cycles=2000
--host-display-mode=16:9
#Fix for fmvs showing black screen with subtitles
#Fix for fmvs showing black screen with subtitles
--fpu-accurate-range=0x3f3068,0x3f32bc
--fpu-accurate-range=0x3f3068,0x3f32bc
Line 2,548: Line 2,513:
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu0-no-clamping=0
--vu0-no-clamping=0
#Animation timing fix
#Optional Clamping
--fpu-no-clamping=0
#Speedup
--vu1-di-bits=0
#underclocking the animation offsets
--ee-hook=0x0028A808,AdvanceClock,,500
--ee-hook=0x0028A574,AdvanceClock,,500
--ee-hook=0x0028A4F4,AdvanceClock,,500
--ee-hook=0x0028A4E4,AdvanceClock,,500
--ee-hook=0x0028A6EC,AdvanceClock,,500
--ee-hook=0x0028A460,AdvanceClock,,500
--ee-hook=0x0028A278,AdvanceClock,,500
--ee-hook=0x0028A278,AdvanceClock,,500
--ee-hook=0x0028A410,AdvanceClock,,500
--ee-hook=0x0028A288,AdvanceClock,,500
--ee-hook=0x0028A294,AdvanceClock,,500
--ee-hook=0x0028A4A0,AdvanceClock,,500
--ee-hook=0x0028A36C,AdvanceClock,,500
--ee-hook=0x0028A6BC,AdvanceClock,,500
--ee-hook=0x0028A488,AdvanceClock,,500
--ee-hook=0x0028A65C,AdvanceClock,,500
--ee-hook=0x0028A68C,AdvanceClock,,500
--ee-hook=0x0028A6D4,AdvanceClock,,500
--ee-hook=0x0028A6A4,AdvanceClock,,500
--ee-hook=0x0028A5D4,AdvanceClock,,500
--ee-hook=0x0028A5D4,AdvanceClock,,500
</pre><br>'''LUA'''
</pre><br>'''LUA'''
Line 2,556: Line 2,542:
-- emu used=KOF 2000
-- emu used=KOF 2000


apiRequest(0.1)
apiRequest(1.0)  


local gpr = require("ee-gpr-alias")
local gpr = require("ee-gpr-alias")
Line 2,829: Line 2,815:


<pre>--gs-upscale=point
<pre>--gs-upscale=point
--gs-uprender=2x2
--gs-motion-factor=25
--host-audio-latency=0.01
--gs-ignore-dirty-page-border=1
--gs-ignore-dirty-page-border=1
--gs-kernel-cl="h2lpool"
--gs-kernel-cl="h2lpool"
Line 2,834: Line 2,823:
--gs-h2l-list-opt=1
--gs-h2l-list-opt=1
--gs-h2l-accurate-hash=1
--gs-h2l-accurate-hash=1
#same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.</pre>
#same as Anthology, which VI is a patched-out section of; substantial slowdown during combat has been mitigated.</pre>


Line 3,074: Line 3,064:
</pre>
</pre>


====Shin Megami Tensei III: Nocturne====
====Shin Megami Tensei: Persona 3 FES====
'''CLI'''
<br>All
<br>Emu: War of the Monsters
<pre>
#Speedhacks
--vu1-di-bits=0
--vu1-mpg-cycles=200
#Fix fpu math
--fpu-accurate-muldiv=1
--fpu-accurate-mul-fast=1
</pre>


====Shin Megami Tensei: Persona 3 FES====
'''CLI'''
<br>'''NTSC'''
<br>'''NTSC'''
<br>'''CLI'''
<pre>
<pre>
# Fixes interlacing.
# Misc
--host-display-mode=full
--force-frame-blend=0
--force-frame-blend=0
--gs-progressive=1
--ee-cycle-scalar=0.62
--host-audio-latency=0.05
# Mipmapping
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
# VU Speedhacks
# VU Speedhacks
--vu0-const-prop=1
--vu1-const-prop=1
--vu1-di-bits=0
--vu1-di-bits=0
--vu1-mpg-cycles=300
--vu0-di-bits=0
--vu1-opt-vf00=2
--vu0-opt-vf00=2
--vu1-mpg-cycles=1400
--vu-custom-min-max=0
# IOP Speedhacks
--iop-const-folding=All
--iop-cycle-scalar=0.1
--cdvd-sector-seek-cycles=0.1
--cdvd-sector-read-cycles=0.1
# Default Optimizations
--fpu-no-clamping=0
--fpu-clamp-operands=1
--fpu-clamp-results=1
--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
--vu0-opt-flags=1
--vu1-opt-flags=1
--cop2-opt-flags=1
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--vu0-jr-cache-policy=newprog
--vu0-jalr-cache-policy=newprog


#User Emu = kof98um
#User Emu = kof98um
</pre>
</pre>
* Config and icons [https://www.psx-place.com/threads/research-ps2-emulator-configuration-on-ps4.16131/page-243 Download]


====Shin Megami Tensei: Persona 4====
====Shin Megami Tensei: Persona 4====
Line 3,200: Line 3,219:
'''''LUA'''''
'''''LUA'''''
<br>(SLUS-20228)
<br>(SLUS-20228)
<pre>apiRequest(0.1)
<pre>apiRequest(1.0)


local eeObj = getEEObject()
local eeObj = getEEObject()
Line 3,253: Line 3,272:
ALL
ALL
<br>CLI
<br>CLI
<pre>
<pre>--gs-uprender=2x2
--gs-upscale=edgesmooth
--gs-kernel-cl-up="up2x2skipinterp"
--gs-kernel-cl-up="up2x2skipinterp"


Line 3,272: Line 3,292:
-- emu used=jakx v2
-- emu used=jakx v2


apiRequest(0.1)
apiRequest(2.3)


local gpr    = require("ee-gpr-alias")
local gpr    = require("ee-gpr-alias")
Line 3,296: Line 3,316:
</pre>
</pre>


====Spider-Man: Web of Shadows====
ALL
<br>CLI
<pre>
# Fix not being able to connect hits, and summon... etc...
--fpu-no-clamping=0
--cop2-no-clamping=0
</pre>
====Spider-Man 3 ====
====Spider-Man 3 ====
ALL
ALL
Line 3,314: Line 3,326:


--vu1-mpg-cycles=600
--vu1-mpg-cycles=600
--host-audio-latency=2.21


#Fix for slowdown and micro-freezes</pre>
#Fix for slowdown and micro-freezes</pre>
Line 3,325: Line 3,339:
#Rest might be unnecessary
#Rest might be unnecessary
--vu0-no-clamping=0
--vu0-no-clamping=0
--vu0-clamp-operands=1
--vu0-clamp-results=1
--vu1-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1
</pre>
</pre>


Line 3,332: Line 3,352:
<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 3,353: Line 3,373:
<pre>
<pre>
--iop-cycle-scalar=1.8
--iop-cycle-scalar=1.8
--host-audio-latency=1.1


#Use JakX v2 emu</pre>
#Use JakX v2 emu</pre>
Line 3,410: Line 3,431:
--vu0-di-bits=0
--vu0-di-bits=0
--vu1-di-bits=0
--vu1-di-bits=0
--vu0-const-prop=1
--vu1-const-prop=1
--ee-cycle-scalar=1.5
--ee-cycle-scalar=1.5
--gs-adaptive-frameskip=1
--gs-adaptive-frameskip=1
--vu1-injection=1
--vu1-injection=1
#Misc
--host-audio-latency=0.01


#PS4 Pro required for full speed
#PS4 Pro required for full speed
Line 3,427: Line 3,452:
#Fix for graphical glitches.</pre>
#Fix for graphical glitches.</pre>


====Sword of ETheria====
====Sword of etheria====
'''CLI'''
'''CLI'''
<br>All versions
<br>All versions
<pre>
<pre>
#Fixes missing graphics and crashes.
#Fix for game's graphics being missing And game crashing
--vu-custom-min-max=0
--vu-custom-min-max=0
#Jakv2 emu used
#Jakv2 emu used
Line 3,491: Line 3,516:
'''''CLI'''''
'''''CLI'''''
<pre>
<pre>
--gs-uprender=2x2
--gs-upscale=EdgeSmooth


--fpu-accurate-range=0x27FFFC,0x27FFFF
--fpu-accurate-range=0x27FFFC,0x27FFFF
Line 3,498: Line 3,525:
--vu1-no-clamping=0
--vu1-no-clamping=0
--cop2-no-clamping=0
--cop2-no-clamping=0
--host-display-mode=16:9
</pre>
</pre>
'''''LUA file'''''
'''''LUA file'''''
Line 3,770: Line 3,799:
<pre>
<pre>
-- Fix for thin vertical lines that separate screen picture, misallignment/tearing of screen during upscaling (was used in official PSN Red Dead Revolver)
-- Fix for thin vertical lines that separate screen picture, misallignment/tearing of screen during upscaling (was used in official PSN Red Dead Revolver)
apiRequest(0.1)
apiRequest(1.0)
local emuObj = getEmuObject()
local emuObj = getEmuObject()
-- psm= SCE_GS_PSMCT32 (0)
-- psm= SCE_GS_PSMCT32 (0)
Line 3,784: Line 3,813:
<pre>--vu0-no-clamping=0
<pre>--vu0-no-clamping=0
--vu1-no-clamping=0
--vu1-no-clamping=0
--vu0-clamp-results=1
--vu1-clamp-results=1
--fpu-no-clamping=0
--fpu-no-clamping=0
--cop2-no-clamping=0
--cop2-no-clamping=0
--fpu-clamp-results=1
--cop2-clamp-results=1


#SPS Fix</pre>
#SPS Fix</pre>
Line 3,896: Line 3,929:


<pre>
<pre>
--gs-uprender=2x2
--gs-upscale=EdgeSmooth


--force-frame-blend=1
--force-frame-blend=1
Line 3,909: Line 3,944:
-- 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 3,927: Line 3,963:


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 3,938: Line 3,976:
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)
--Unlock All Weapons by MadCatz
eeObj.WriteMem32(0x20274774,0x24030001)
eeObj.WriteMem32(0x2027477C,0xA443000E)
--Brad Hawk by Code Master
eeObj.WriteMem32(0x0094668E,0x00010001)


emuObj.ThrottleMax()
--Glen by Code Master
end
eeObj.WriteMem32(0x00946694,0x00010001)


emuObj.AddVsyncHook(WS)
--Torque by Code Master
eeObj.WriteMem32(0x00946696,0x00010001)


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


</pre>
--Seth by Code Master
eeObj.WriteMem32(0x0094669A,0x00010001)


====Valkyrie Profile 2: Silmeria====
--Nas-Tiii by Code Master
'''''CLI'''''
eeObj.WriteMem32(0x0094669C,0x00010001)
 
--Em Cee by Code Master
eeObj.WriteMem32(0x0094669E,0x00010001)


<br>All versions
--Real Deal by Code Master
eeObj.WriteMem32(0x009466A0,0x00010001)


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


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


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


eeObj.WriteMem32(0x000FF000, 0x3C043F40)
--Jose by Code Master
eeObj.WriteMem32(0x000FF004, 0x44840800)
eeObj.WriteMem32(0x009466A8,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====
--Emilio by Code Master
ALL
eeObj.WriteMem32(0x009466AA,0x00010001)
<br>CLI
<pre>--gs-motion-factor=50
--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>


====Van Helsing====
--Kadonashi by Code Master
ALL
eeObj.WriteMem32(0x009466AC,0x00010001)
<br>CLI
 
<pre>
--Reggie by Code Master
--gs-kernel-cl="h2lpool"
eeObj.WriteMem32(0x009466AE,0x00010001)
--gs-kernel-cl-up="h2lpool2x2"
 
--gs-adaptive-frameskip=1
--Zach by Code Master
--cdvd-sector-read-cycles=2000
eeObj.WriteMem32(0x009466B0,0x00010001)
--gs-progressive=1
 
--Colin by Code Master
eeObj.WriteMem32(0x009466B2,0x00010001)


#--vu0-di-bits=0
--Jake by Code Master
#--vu1-di-bits=0
eeObj.WriteMem32(0x009466B4,0x00010001)


--vu1-mpg-cycles=358
--Tong Yoon by Code Master
eeObj.WriteMem32(0x009466B6,0x00010001)


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


--vif1-instant-xfer=0</pre>
--BK by Code Master
<br>'''LUA'''
eeObj.WriteMem32(0x009466BA,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(0.1)
--Grave Digga' by Code Master
eeObj.WriteMem32(0x009466BC,0x00010001)


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


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


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


local WS = function()
--Spider by Code Master
--16:9
eeObj.WriteMem32(0x009466C4,0x00010001)
eeObj.WriteMem32(0x002E7FA0,0x3FE38E38)
--Access All Cheats by GameMasterZer0
eeObj.WriteMem32(0x2019FFB0,0x24100001)


--Pain Killah by Code Master
eeObj.WriteMem32(0x009466C6,0x00010001)


--Dwayne by Code Master
eeObj.WriteMem32(0x009466C8,0x00010001)


emuObj.ThrottleMax()
--Dwayne 2? by Code Master
end
eeObj.WriteMem32(0x009466CA,0x00010001)


emuObj.AddVsyncHook(WS)
--Shun Ying Lee by Code Master
</pre>
eeObj.WriteMem32(0x009466CC,0x00010001)


====Wallace & Gromit in Project Zoo====
--GD-05 by Code Master
'''CLI'''
eeObj.WriteMem32(0x009466CE,0x00010001)
<br>All Versions
<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>


====Whiplash====
--DR-88 by Code Master
All versions
eeObj.WriteMem32(0x009466D0,0x00010001)
<br>CLI
<pre>--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
--gs-use-mipmap=1
#Fix for texture glitches</pre>


====WinBack: Covert Operations====
--FK-71 by Code Master
All versions
eeObj.WriteMem32(0x009466D2,0x00010001)
<br>CLI
<pre>--vu0-no-clamping=0
--vu1-no-clamping=0
--cop2-no-clamping=0


#Fix for texture glitches</pre>
--PT-22 by Code Master
====World Series of Poker - Tournament of Champions====
eeObj.WriteMem32(0x009466D4,0x00010001)
<br>LUA
<br>SLUS-21491
<br>Emu: War of the monsters
<pre>
apiRequest(0.1)


local eeObj = getEEObject()
--Bain by Code Master
local emuObj = getEmuObject()
eeObj.WriteMem32(0x009466D6,0x00010001)


local patcher = function()
--Cooper by Code Master
eeObj.WriteMem32(0x0036A180, 0x0)
eeObj.WriteMem32(0x009466D8,0x00010001)
end
emuObj.AddVsyncHook(patcher)
</pre>


====X-Files - Resist or Serve====
--Anderson by Code Master
<br>'''''CLI'''''
eeObj.WriteMem32(0x009466DA,0x00010001)
<pre>
--gs-adaptive-frameskip=1


--vu0-no-clamping=0
--Taylor by Code Master
--vu1-no-clamping=0
eeObj.WriteMem32(0x009466DC,0x00010001)


--cdvd-sector-read-cycles=3000
--Chris by Code Master
eeObj.WriteMem32(0x009466DE,0x00010001)


#emu used=jak tpl v1
--Park by Code Master
</pre>
eeObj.WriteMem32(0x009466E0,0x00010001)


==== X-Men Legends====
--Alex by Code Master
'''CLI'''
eeObj.WriteMem32(0x009466E2,0x00010001)
<br>All versions
 
<pre>
--McKinzie by Code Master
--gs-upscale=motionvector
eeObj.WriteMem32(0x009466E4,0x00010001)
--gs-optimize-30fps=1
 
--cdvd-sector-read-cycles=2000
--Napalm 99 by Code Master
--vu-custom-min-max=0
eeObj.WriteMem32(0x009466E6,0x00010001)
--vu1-di-bits=0
 
--vu0-di-bits=0
--Golem by Code Master
--vu1-opt-vf00=2
eeObj.WriteMem32(0x009466E8,0x00010001)
--vu0-opt-vf00=2
 
--vu1-injection=1
--Riki by Code Master
--vu1=jit-sync
eeObj.WriteMem32(0x009466EA,0x00010001)
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--vu0-jr-cache-policy=newprog
--vu0-jalr-cache-policy=newprog


--Masa by Code Master
eeObj.WriteMem32(0x009466EC,0x00010001)


--ee-cycle-scalar=1.5
--Hiro by Code Master
</pre>
eeObj.WriteMem32(0x009466EE,0x00010001)
'''LUA'''
<br>NTSC only
<pre>
-- X-Men™ Legends®
-- ported to PS4 Lua by Stayhye
-- emu used=jakx v2


apiRequest(0.1)
--Ryuji by Code Master
eeObj.WriteMem32(0x009466F0,0x00010001)


local gpr      = require("ee-gpr-alias")
--Ye Wei by Code Master
local emuObj      = getEmuObject()
eeObj.WriteMem32(0x009466F2,0x00010001)
local eeObj      = getEEObject()
local gsObj      = getGsObject()
local eeOverlay    = eeObj.getOverlayObject()
local iopObj  = getIOPObject()


emuObj.PadSetLightBar(0, 10,50,145)
--Sha Ying by Code Master
emuObj.SetDisplayAspectWide()
eeObj.WriteMem32(0x009466F4,0x00010001)
gsObj.SetDeinterlaceShift(0)


local WS = function()
--Yan Jun by Code Master
--eeObj.WriteMem32(0x005cc888,0x3c023f34)
eeObj.WriteMem32(0x009466F6,0x00010001)
eeObj.WriteMem32(0x20720920,0x3FE147AE) --In-game width widescreen 16:9
 
eeObj.WriteMem32(0x2072094c,0x3F000000) --Fonts Width
--Shinkai by Code Master
eeObj.WriteMem32(0x20720950,0x3F000000) --Fonts Height
eeObj.WriteMem32(0x009466F8,0x00010001)
eeObj.WriteMem32(0x20720958,0x3F8CCCCD) --HUD & Menu Height
 
--eeObj.WriteMem32(0x20720954,0x3FA00000) --HUD & Menu Width
--Lin Fong Lee by Code Master
eeObj.WriteMem32(0x20D85448,0x3F666666) --HUD Height
eeObj.WriteMem32(0x009466FA,0x00010001)
eeObj.WriteMem32(0x20D85430,0x3F59999A) --HUD Width
 
--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)


eeObj.Vu1MpgCycles(3450)
emuObj.ThrottleMax()
emuObj.ThrottleMax()
end
end
Line 4,178: Line 4,173:
</pre>
</pre>


==== Yu-Gi-Oh! Duelists of the Roses====
====Valkyrie Profile 2: Silmeria====
All
'''''CLI'''''
<br>CLI
<pre>
#Speedhacks
--vu1-di-bits=0
--ee-cycle-scalar=1.1
--vu1-mpg-cycles=200
#Fix for random crashes during fights
--ee-ignore-segfault=readwrite
</pre>


<br>All versions


==== Yu-Gi-Oh! Capsule Monsters Colosseum====
All
<br>CLI
<pre>
<pre>
#Fix for freeze. RECVX emu is required.
#emu used Star Ocean 3 for black screen upon leaving town and corrupted world map
--vu1=jit-sync
--gs-progressive=1
--vu-hack-triace=1
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
</pre>
</pre>


====Zatch Bell! Mamodo Battles™====
'''''LUA file'''''
NTSC/U
<br>SLUS_21452
<br>CLI
<pre>--Proper Widescreen and No ghosting
<pre>
--Valkyrie Profile 2 - Silmeria (USA) SLUS_214.52
#Graphical glitches fix
apiRequest(1.0)
--gs-kernel-cl="mipmap"
local eeObj = getEEObject()
--gs-kernel-cl-up="mipmap2x2"
local emuObj = getEmuObject()
--gs-use-mipmap=1
local patcher = function()
#Clamping, also for graphics
--vu0-no-clamping=0
--vu1-no-clamping=0
#likely unnecessary commands
--cop2-no-clamping=0
--fpu-no-clamping=0


#Jak Emu used*</pre>
local code_check = eeObj.ReadMem16(0x37984C)
if code_check == 0x0800 then
eeObj.WriteMem32(0x37984C,0x0803FC00)
end


====Zombie Hunters 2====
eeObj.WriteMem32(0x000FF000, 0x3C043F40)
'''CLI'''
eeObj.WriteMem32(0x000FF004, 0x44840800)
<br>All versions
eeObj.WriteMem32(0x000FF008, 0x46000802)
<pre>
eeObj.WriteMem32(0x000FF00C, 0x080DE615)
#Speedhacks
eeObj.WriteMem32(0x000FF010, 0xC66100C8)
--vu1-di-bits=0
--No ghosting in battle
--ee-cycle-scalar=1.2
eeObj.WriteMem32(0x0035FA38, 0x46001030)
--vu1-mpg-cycles=150
end
#Graphics clean up
emuObj.AddVsyncHook(patcher)
--gs-use-clut-merge=1
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"
--vu1-no-clamping=0
</pre>
</pre>


====Zombie Zone====
====Vampire: Darkstalkers Collection====
'''CLI'''
ALL
<br>All versions
<br>CLI
<pre>
<pre>--gs-motion-factor=50
#Speedhacks
--host-audio-latency=0.01
--vu1-di-bits=0
--gs-kernel-cl="h2lpool"
--ee-cycle-scalar=1.2
--gs-kernel-cl-up="h2lpool2x2"
--vu1-mpg-cycles=150
--gs-h2l-list-opt=1
#Graphics clean up
--gs-h2l-accurate-hash=1
--gs-use-clut-merge=1
#Fix for performance issues. PS4 Pro required for full speed.</pre>
--gs-kernel-cl="clutmerge"
--gs-kernel-cl-up="clutmerge2x2"
</pre>


====Coraline====
====Van Helsing====
'''CLI'''
ALL
<br>All versions
<br>CLI
<pre>
<pre>
--gs-use-mipmap=1
--gs-uprender=2x2
--gs-kernel-cl-up="mipmap2x2"
--gs-upscale=edgesmooth
--gs-scanout-offsetx=27
--gs-kernel-cl="h2lpool"
--gs-scanout-offsety=27
--gs-kernel-cl-up="h2lpool2x2"
--safe-area-min=0.9
--gs-adaptive-frameskip=1
--cdvd-sector-read-cycles=2000
--cdvd-sector-read-cycles=2000
</pre>
--gs-progressive=1
'''LUA'''
<br>PAL
<pre>
-- Coraline
-- emu used=KOF 98


apiRequest(0.1) 
#--vu0-di-bits=0
#--vu1-di-bits=0


local gpr = require("ee-gpr-alias")
--vu1-mpg-cycles=358
 
--ee-cycle-scalar=2.8
--iop-cycle-scalar=0.9
 
--vif1-instant-xfer=0</pre>
<br>'''LUA'''
<pre>
-- Van Helsing (SLUS-20738)
-- Wide screen patch 16:9 by paul_met
-- 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")


--Widescreen hack
local emuObj = getEmuObject()
--Gameplay 16:9
local eeObj = getEEObject()
--eeObj.WriteMem32(0x0026432C,0x3C014440) --3C014480 (Increases hor. axis)
local gsObj = getGsObject()
local eeOverlay = eeObj.getOverlayObject()
local iopObj        = getIOPObject()
   


--Render fix
emuObj.SetDisplayAspectWide()
eeObj.WriteMem32(0x001A6548,0x3C013C2E) --3C013C0E
gsObj.SetDeinterlaceShift(1)  


--Get rid of black bar
local WS = function()
eeObj.WriteMem32(0x00225ea8,0x3c014000) --3c014299
--16:9
eeObj.WriteMem32(0x00225eac,0x00000000) --3421999a
eeObj.WriteMem32(0x002E7FA0,0x3FE38E38)  
--Access All Cheats by GameMasterZer0
eeObj.WriteMem32(0x2019FFB0,0x24100001)


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


local pad_bits = emuObj.GetPad()


local UP      = pad_bits &  0x0010
emuObj.ThrottleMax()
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
  eeObj.WriteMem32(0x0026432C,0x3C014480) -- original value
end
end


if (R1 ~= 0 and RIGHT ~= 0) then --R3 Widescreen Screen
emuObj.AddVsyncHook(WS)
  eeObj.WriteMem32(0x0026432C,0x3C014440) --3C014480 (Increases hor. axis)
end
 
emuObj.ThrottleMax()
 
end
 
emuObj.AddVsyncHook(patcher)
</pre>
</pre>


====Total Overdose====
====Wallace & Gromit in Project Zoo====
'''CLI'''
'''CLI'''
<br>All versions
<br>All Versions
<pre>
<pre>
--host-display-mode=16:9
--gs-uprender=2x2
--host-vsync=1
--gs-upscale=EdgeSmooth
--gs-optimize=60fps
--gs-progressive=1
--gs-force-bilinear=1
--cdvd-sector-read-cycles=2000
--cdvd-sector-read-cycles=2000
--ps2-lang=system
--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>


--gs-progressive=1
====Whiplash====
--gs-motion-factor=50
All versions
<br>CLI
<pre>--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
--gs-use-mipmap=1
#Fix for texture glitches</pre>
 
====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-clamp-operands=1
--vu1-clamp-results=1
--cop2-no-clamping=0
--cop2-clamp-operands=1
--cop2-clamp-results=1
 
#Fix for texture glitches</pre>
 
====X-Files - Resist or Serve====
<br>'''''CLI'''''
<pre>--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-adaptive-frameskip=1


--vu0-no-clamping=0
--vu0-no-clamping=0
--vu1-no-clamping=0
--vu1-no-clamping=0


--gs-ignore-rect-correction=1
--cdvd-sector-read-cycles=3000


#ADK Damashii Emu used
#emu used=jak tpl v1
</pre>
</pre>


'''LUA'''
==== X-Men Legends====
<br>PAL - SLES53492
'''CLI'''
<br>All versions
<pre>
<pre>
-- Total Overdose (E)(SLES-53492)
--gs-uprender=2x2
-- emu used=ADK
--gs-upscale=motionvector
 
--gs-optimize-30fps=1
apiRequest(0.1)
--cdvd-sector-read-cycles=2000
local eeObj = getEEObject()
--vu-custom-min-max=0
local emuObj = getEmuObject()
--vu1-di-bits=0
 
--vu0-di-bits=0
local patcher = function()
--vu1-opt-vf00=2
--Widescreen hack 16:9
--vu0-opt-vf00=2
 
--vu1-injection=1
--00 00 80 3F 83 F9 22 3F DB 0F C9 3F 00 00 00 BF
--vu1=jit-sync
eeObj.WriteMem32(0x20692A2C,0x3F47AE14) -- Zoom
--vu1-jr-cache-policy=newprog
--vu1-jalr-cache-policy=newprog
--vu0-jr-cache-policy=newprog
--vu0-jalr-cache-policy=newprog


--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)
--ee-cycle-scalar=1.5
 
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>
 
====Dark Summit====
'''CLI'''
<br>All versions
<pre>
--host-display-mode=16:9
--force-pal-60hz=1
 
# Fahrenheit Emu used
</pre>
</pre>
'''LUA'''
'''LUA'''
<br>PAL - SLES50575
<br>NTSC only
<pre>
<pre>
-- Dark Summit (PAL)
-- X-Men™ Legends®
-- emu used=Fahrenheit
-- ported to PS4 Lua by Stayhye
apiRequest(0.1)    -- request version 0.1 API. Calling apiRequest() is mandatory.
-- emu used=jakx v2


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


local WS = 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 16:9
emuObj.PadSetLightBar(0, 10,50,145)
emuObj.SetDisplayAspectWide()
gsObj.SetDeinterlaceShift(0)


--X-Fov
local WS = function()
--02000446 280100ae 42080546
--eeObj.WriteMem32(0x005cc888,0x3c023f34)
eeObj.WriteMem32(0x003d37d0,0x08030000)
eeObj.WriteMem32(0x20720920,0x3FE147AE) --In-game width widescreen 16:9
 
eeObj.WriteMem32(0x2072094c,0x3F000000) --Fonts Width
eeObj.WriteMem32(0x000c0000,0x46040002)
eeObj.WriteMem32(0x20720950,0x3F000000) --Fonts Height
eeObj.WriteMem32(0x000c0004,0x3c013f40)
eeObj.WriteMem32(0x20720958,0x3F8CCCCD) --HUD & Menu Height
eeObj.WriteMem32(0x000c0008,0x00000000)
--eeObj.WriteMem32(0x20720954,0x3FA00000) --HUD & Menu Width
eeObj.WriteMem32(0x000c000c,0x4481f000)
eeObj.WriteMem32(0x20D85448,0x3F666666) --HUD Height
eeObj.WriteMem32(0x000c0010,0x461e0002)
eeObj.WriteMem32(0x20D85430,0x3F59999A) --HUD Width
eeObj.WriteMem32(0x000c0014,0x080f4df5)
 
--Render fix
--003f013c 00a88144 0000b07f
eeObj.WriteMem32(0x0036444c,0x3c013f2b) --3c013f00


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>


====Nightshade====
==== Yu-Gi-Oh! Capsule Monsters Colosseum====
'''CLI'''
All
<P>
<br>CLI
ALL versions
<pre>--vu1=jit-sync
<pre>
 
--host-display-mode=16:9
#MTVU Incompatibilty, Fix for Black Screen, RECVX Emu Needed
--gs-vert-precision=8
--force-frame-blend=1
</pre>
</pre>
'''LUA'''
 
<br>NTSC - SLUS20810
====Zatch Bell! Mamodo Battles™====
NTSC/U
<br>CLI
<pre>
<pre>
-- Nightshade (SLUS-20810)
#Graphical glitches fix
-- Total Repair by nifengyuexia
--gs-kernel-cl="mipmap"
-- emu used=jak v2
--gs-kernel-cl-up="mipmap2x2"
--gs-use-mipmap=1
#Clamping, also for graphics
--vu0-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


apiRequest(0.1)
#Jak Emu used*</pre>


local eeObj = getEEObject()
====Zombie Hunters 2====
local emuObj = getEmuObject()
'''CLI'''
local patcher = function()
<br>All versions
 
<pre>
--Disable the fade-in effect to fix framerate drops caused by excessive enemies
#Speedhacks
eeObj.WriteMem32(0x1d1048,0x1000000f)
--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>


--Disable shadows to fix square bugs around characters
====Zombie Zone====
eeObj.WriteMem32(0x322060,0x03e00008)
'''CLI'''
eeObj.WriteMem32(0x322064,0x00000000)
<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"
</pre>


--Disable haze effect to fix charged attack frame rate drop
====Coraline====
eeObj.WriteMem32(0x30f3f4,0x00000000)
'''CLI'''
 
<br>All versions
end
<pre>
emuObj.AddVsyncHook(patcher)
--gs-uprender=2x2
--gs-upscale=EdgeSmooth
--gs-use-mipmap=1
--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 - SLES52238
<br>PAL
<pre>
<pre>
-- Nightshade(SLES-52238)
-- Coraline
-- Total Repair by nifengyuexia
-- emu used=KOF 98
-- emu used=jak v2
 
apiRequest(1.0) 


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


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
--Widescreen hack
eeObj.WriteMem32(0x1d1f38,0x1000000f)
--Gameplay 16:9
--eeObj.WriteMem32(0x0026432C,0x3C014440) --3C014480 (Increases hor. axis)


--Disable shadows to fix square bugs around characters
--Render fix
eeObj.WriteMem32(0x326370,0x03e00008)
eeObj.WriteMem32(0x001A6548,0x3C013C2E) --3C013C0E
eeObj.WriteMem32(0x326374,0x00000000)


--Disable haze effect to fix charged attack frame rate drop
--Get rid of black bar
eeObj.WriteMem32(0x3135f4,0x00000000)
eeObj.WriteMem32(0x00225ea8,0x3c014000) --3c014299
eeObj.WriteMem32(0x00225eac,0x00000000) --3421999a


end
eeObj.WriteMem32(0x002644ec,0x3c014440) -- hor fov
emuObj.AddVsyncHook(patcher)
</pre>


====Kunoichi====
local pad_bits = emuObj.GetPad()
<br>NTSC-J
<br>SLAJ-25031
<br>'''LUA'''
<pre>
-- Kunoichi(SLAJ-25031)
-- Total Repair by nifengyuexia
-- emu used=jak v2


apiRequest(0.1)
local UP      = pad_bits &  0x0010
 
local DOWN    = pad_bits &  0x0040
local eeObj = getEEObject()
local LEFT    = pad_bits &  0x0080
local emuObj = getEmuObject()
local RIGHT    = pad_bits &  0x0020
local patcher = function()
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


--Disable the fade-in effect to fix framerate drops caused by excessive enemies
if (R1 ~= 0 and LEFT ~= 0) then --L3 Normal Screen
eeObj.WriteMem32(0x1d10f8,0x1000000f)
  eeObj.WriteMem32(0x0026432C,0x3C014480) -- original value
end


--Disable shadows to fix square bugs around characters
if (R1 ~= 0 and RIGHT ~= 0) then --R3 Widescreen Screen
eeObj.WriteMem32(0x324450,0x03e00008)
  eeObj.WriteMem32(0x0026432C,0x3C014440) --3C014480 (Increases hor. axis)
eeObj.WriteMem32(0x324454,0x00000000)
end


--Disable haze effect to fix charged attack frame rate drop
emuObj.ThrottleMax()
eeObj.WriteMem32(0x3117f4,0x00000000)


end
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(patcher)
</pre>
</pre>
<br>'''LUA'''
 
<br>NTSC-J
====Total Overdose====
<br>SLPM-65447
'''CLI'''
<br>All versions
<pre>
<pre>
-- Kunoichi(SLPM-65447)
--host-display-mode=16:9
-- Total Repair by nifengyuexia
--host-vsync=1
-- emu used=jak v2
--gs-optimize=60fps
--cdvd-sector-read-cycles=2000
--ps2-lang=system


apiRequest(0.1)
--gs-progressive=1
--gs-motion-factor=50


local eeObj = getEEObject()
--vu0-no-clamping=0
--vu1-no-clamping=0
 
--gs-ignore-rect-correction=1
 
#ADK Damashii Emu used
</pre>
 
'''LUA'''
<br>PAL - SLES53492
<pre>
-- Total Overdose (E)(SLES-53492)
-- emu used=ADK
 
apiRequest(1.0)
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(0x1d1058,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(0x321c70,0x03e00008)
eeObj.WriteMem32(0x206C64C4,0x3F400000) -- Vert fov
eeObj.WriteMem32(0x321c74,0x00000000)
end


--Disable haze effect to fix charged attack frame rate drop
eeObj.WriteMem32(0x30f004,0x00000000)
end
emuObj.AddVsyncHook(patcher)
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>


====Jak and Daxter: The Lost Frontier====
====Dark Summit====
'''CLI'''
'''CLI'''
<P>
<br>All versions
ALL versions
<pre>
<pre>
--vu1-di-bits=0
--host-display-mode=16:9
--vu0-di-bits=1
--force-pal-60hz=1
--gs-optimize=60fps


# Emu used = Red Dead Revolver
# Fahrenheit Emu used
</pre>
</pre>


====Sled Storm====
'''LUA'''
<P>
<br>PAL - SLES50575
ALL versions
<pre>
<pre>
--cdvd-sector-read-cycles=2000
-- Dark Summit (PAL)
--vu0-no-clamping=0
-- emu used=Fahrenheit
--vu1-no-clamping=0
apiRequest(1.2)    -- request version 0.1 API. Calling apiRequest() is mandatory.
--host-gamepads=2


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


=Global Configurations=
local WS = function()
<pre>Configurations made for more than one game for a specific purpose</pre>


==SkipMpegHack (FMV skip)==
--Widescreen hack 16:9
'''''LUA file'''''
<br>
All games using standard sceMpeg decoder will have their fmvs disabled by this patch.
<pre>
apiRequest(0.1)
eeObj  = getEEObject()
emuObj = getEmuObject()


local addr  = 0x100008
--X-Fov
local skipMpeg = function()
--02000446 280100ae 42080546
    while(addr < 0x1000000)
eeObj.WriteMem32(0x003d37d0,0x08030000)
    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


emuObj.AddEntryPointHook(skipMpeg)
eeObj.WriteMem32(0x000c0000,0x46040002)
--We should remove that hook, but we never really hit entry point again.
eeObj.WriteMem32(0x000c0004,0x3c013f40)
--emuObj.RemoveEntryPointHook(skipMpeg)
eeObj.WriteMem32(0x000c0008,0x00000000)
</pre>
eeObj.WriteMem32(0x000c000c,0x4481f000)
eeObj.WriteMem32(0x000c0010,0x461e0002)
eeObj.WriteMem32(0x000c0014,0x080f4df5)


=Incomplete configurations=
--Render fix
<pre>This is a list of unsuccessful, or incomplete configurations, along with information that might help others in the future.
--003f013c 00a88144 0000b07f
A place for research and sharing useful info.</pre>
eeObj.WriteMem32(0x0036444c,0x3c013f2b) --3c013f00


emuObj.ThrottleMax()


====Dragon ball z budokai tenkaichi====
end
'''LUA'''
<br>NTSC


Things go wrong somewhere around 0x001137A8
emuObj.AddVsyncHook(WS)
<pre>
</pre>
apiRequest(0.1)
 
====Nightshade====
'''CLI'''
<P>
ALL versions
<pre>
--host-display-mode=16:9
--gs-vert-precision=8
--force-frame-blend=1
</pre>
'''LUA'''
<br>NTSC - SLUS20810
<pre>
-- Nightshade (SLUS-20810)
-- 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()
--Disable the fade-in effect to fix framerate drops caused by excessive enemies
eeObj.WriteMem32(0x1d1048,0x1000000f)
--Disable shadows to fix square bugs around characters
eeObj.WriteMem32(0x322060,0x03e00008)
eeObj.WriteMem32(0x322064,0x00000000)
--Disable haze effect to fix charged attack frame rate drop
eeObj.WriteMem32(0x30f3f4,0x00000000)


local patcher = function()
eeObj.WriteMem32(0x0011A54C, 0x24020000)
eeObj.WriteMem32(0x0018D944, 0x24020000)
eeObj.WriteMem32(0x0018D4CC, 0x24020000)
end
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(patcher)
</pre>
</pre>
====Dynasty Warriors 5 - Empires====
'''LUA'''
<br>PAL
<br>PAL - SLES52238
<pre>
<pre>
001428CC
-- Nightshade(SLES-52238)
-- Total Repair by nifengyuexia
-- emu used=jak v2


-00142910
apiRequest(1.0)
</pre>


====Batman Begins====
NTSC
<pre>
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(0x00333A88, 0x0)


eeObj.WriteMem32(0x0032C0D8, 0xA2000BC2)
--Disable the fade-in effect to fix framerate drops caused by excessive enemies
eeObj.WriteMem32(0x0032C0F4, 0x10000006)
eeObj.WriteMem32(0x1d1f38,0x1000000f)
end
emuObj.AddVsyncHook(patcher)
</pre>


====Bee Movie====
--Disable shadows to fix square bugs around characters
NTSC
eeObj.WriteMem32(0x326370,0x03e00008)
<br>CLI
eeObj.WriteMem32(0x326374,0x00000000)
<br>NTSC
 
<br>Redfaction
--Disable haze effect to fix charged attack frame rate drop
eeObj.WriteMem32(0x3135f4,0x00000000)
 
end
emuObj.AddVsyncHook(patcher)
</pre>
'''LUA'''
<br>Kunoichi
<br>NTSC-J SLAJ-25031
<pre>
<pre>
--ee-context-switch-cycles=16000
-- Kunoichi(SLAJ-25031)
--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)
--Disable the fade-in effect to fix framerate drops caused by excessive enemies
eeObj.WriteMem32(0x1d10f8,0x1000000f)
 
--Disable shadows to fix square bugs around characters
eeObj.WriteMem32(0x324450,0x03e00008)
eeObj.WriteMem32(0x324454,0x00000000)
 
--Disable haze effect to fix charged attack frame rate drop
eeObj.WriteMem32(0x3117f4,0x00000000)
 
end
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(patcher)
</pre>
</pre>
 
'''LUA'''
====The Simpsons====
<br>NTSC-J SLPM-65447
<pre>
<pre>
--vu1-no-clamping=0
-- Kunoichi(SLPM-65447)
</pre>
-- Total Repair by nifengyuexia
-- emu used=jak v2


apiRequest(1.0)


====Tenchu - Fatal Shadows====
local eeObj = getEEObject()
<br>NTSC
local emuObj = getEmuObject()
<br>Destroy all humans v1
local patcher = function()
<pre>
#Removes most elements of graphical corruption
--vif1-instant-xfer=0
</pre>
<pre>
apiRequest(0.1)
-- Not the best solution, but it works.
eeInsnReplace(0x001023E0, 0xAE020000, 0x0)
-- The graphical issues start somewhere in this function 0x00134B10
</pre>


====Ratchet 4 - Deadlocked====
--Disable the fade-in effect to fix framerate drops caused by excessive enemies
<br>'''CLI'''
eeObj.WriteMem32(0x1d1058,0x1000000f)
<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>


<br>'''LUA'''
--Disable shadows to fix square bugs around characters
<br>SCUS-97465
eeObj.WriteMem32(0x321c70,0x03e00008)
<br>Author:Scalerize
eeObj.WriteMem32(0x321c74,0x00000000)
<pre>
apiRequest(0.1)


local eeObj = getEEObject()
--Disable haze effect to fix charged attack frame rate drop
local emuObj = getEmuObject()
eeObj.WriteMem32(0x30f004,0x00000000)
 
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
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(patcher)
</pre>


====Jak and Daxter: The Lost Frontier====
'''CLI'''
<P>
ALL versions
<pre>
--vu1-di-bits=0
--vu0-di-bits=1
--gs-optimize=60fps


# Emu used = Red Dead Revolver
</pre>
</pre>


====Ratchet and Clank 3: Up Your Arsenal====
====Sled Storm====
 
<P>
<br>SCUS97353
ALL versions
<br>Author: Kozarovv
<br>LUA
<pre>
<pre>
-- 23.07.2023 Added debug stuff that should print in klog.
--cdvd-sector-read-cycles=2000
-- This should help us figure out why patch fail.
--vu0-no-clamping=0
 
--vu1-no-clamping=0
apiRequest(0.1)
--host-gamepads=2
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)
 


# Emu used = Rogue v1
</pre>
</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>
It's supposed to -1, 0, or 1 the value of s1, but instead it's crashing the game.
00233CB4
</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(0.1)
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]]</noinclude>
[[Category:Main]]
</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)