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 379: Line 379:
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 868:


<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,038: Line 1,030:
<br>SLUS-20587
<br>SLUS-20587
<pre>
<pre>
#Fix for AI cop car (00422D18 to 00423018 on PCSX2?)
#Fix for AI cop car
--cop2-accurate-addsub-range=0x4b8108,0x4b8408
--cop2-accurate-addsub-range=0x4b8108,0x4b8408
#Speedhacks
#Speedhacks
Line 3,458: Line 3,450:
<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,236: Line 4,228:


#Fix for texture glitches</pre>
#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
emuObj.AddVsyncHook(patcher)
</pre>


====X-Files - Resist or Serve====
====X-Files - Resist or Serve====
Line 4,837: Line 4,814:
--gs-use-mipmap=1
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
--gs-kernel-cl-up="up2x2simple"
#Fix VU0 sync (raise or lower it as convenient)
--ee-hook=0x000FF904,AdvanceClock,,395
</pre>
</pre>


Line 4,852: Line 4,827:


local patcher = function()
local patcher = function()
--jmp
eeObj.WriteMem32(0x0012710C, 0x0803FFE6)
eeObj.WriteMem32(0x0012710C, 0x0803FE80)
eeObj.WriteMem32(0x000FFA00, 0x241B0014)
eeObj.WriteMem32(0x000FFA04, 0x4A000038)
eeObj.WriteMem32(0x000FFA08, 0x277BFFFF)
eeObj.WriteMem32(0x000FFA0C, 0x1760FFFE)
eeObj.WriteMem32(0x000FFA18, 0x03E00008)
eeObj.WriteMem32(0x000FFA34, 0x48C00800)
eeObj.WriteMem32(0x000FFA38, 0x241B00A8)
eeObj.WriteMem32(0x000FFA3C, 0x277BFFFF)
eeObj.WriteMem32(0x000FFA40, 0x1760FFFE)
eeObj.WriteMem32(0x000FFA4C, 0x03E00008)
eeObj.WriteMem32(0x000FFA50, 0x241F0000)
eeObj.WriteMem32(0x000FFA68, 0x48C01000)
eeObj.WriteMem32(0x000FFA6C, 0x241B00A8)
eeObj.WriteMem32(0x000FFA70, 0x277BFFFF)
eeObj.WriteMem32(0x000FFA74, 0x1760FFFE)
eeObj.WriteMem32(0x000FFA80, 0x03E00008)
eeObj.WriteMem32(0x000FFA84, 0x241F0000)
eeObj.WriteMem32(0x000FFCA8, 0x3C150C03)
eeObj.WriteMem32(0x000FFCAC, 0x36B5FE80)
eeObj.WriteMem32(0x000FFCB0, 0x8EF60004)
eeObj.WriteMem32(0x000FFCB4, 0x12D500B1)
eeObj.WriteMem32(0x000FFCC0, 0xAEF50004)
eeObj.WriteMem32(0x000FFCC4, 0x3C150C03)
eeObj.WriteMem32(0x000FFCC8, 0x36B5FE89)
eeObj.WriteMem32(0x000FFCCC, 0xAEF500BC)
eeObj.WriteMem32(0x000FFCD0, 0xAEF501FC)
eeObj.WriteMem32(0x000FFCD4, 0xAEF50354)
eeObj.WriteMem32(0x000FFCD8, 0xAEF50494)
eeObj.WriteMem32(0x000FFCDC, 0xAEF505EC)
eeObj.WriteMem32(0x000FFCE0, 0xAEF5072C)
eeObj.WriteMem32(0x000FFCE4, 0x3C150C03)
eeObj.WriteMem32(0x000FFCE8, 0x36B5FE96)
eeObj.WriteMem32(0x000FFCEC, 0xAEF5015C)
eeObj.WriteMem32(0x000FFCF0, 0xAEF502AC)
eeObj.WriteMem32(0x000FFCF4, 0xAEF503F4)
eeObj.WriteMem32(0x000FFCF8, 0xAEF50544)
eeObj.WriteMem32(0x000FFD04, 0x3C1548C2)
eeObj.WriteMem32(0x000FFD08, 0x36B58800)
eeObj.WriteMem32(0x000FFD0C, 0xAEF51214)
eeObj.WriteMem32(0x000FFD10, 0xAEE0122C)
eeObj.WriteMem32(0x000FFD14, 0x10000099)
eeObj.WriteMem32(0x000FFF20, 0x3C1B000F)
eeObj.WriteMem32(0x000FFF24, 0x377BFF00)
eeObj.WriteMem32(0x000FFF28, 0xAF770000)
eeObj.WriteMem32(0x000FFF2C, 0xAF760004)
eeObj.WriteMem32(0x000FFF30, 0xAF750008)
eeObj.WriteMem32(0x000FFF34, 0xAF74000C)
eeObj.WriteMem32(0x000FFF38, 0x3C170038)
eeObj.WriteMem32(0x000FFF50, 0x3C157120)
eeObj.WriteMem32(0x000FFF54, 0x36B5CDA8)
eeObj.WriteMem32(0x000FFF68, 0x8EF40000)
eeObj.WriteMem32(0x000FFF6C, 0x1295FF4E)
eeObj.WriteMem32(0x000FFF74, 0x1000FFFC)
eeObj.WriteMem32(0x000FFF78, 0x26F70004)
eeObj.WriteMem32(0x000FFF7C, 0xAF77FFF0)
eeObj.WriteMem32(0x000FFF80, 0x8F770000)
eeObj.WriteMem32(0x000FFF84, 0x8F760004)
eeObj.WriteMem32(0x000FFF88, 0x8F750008)
eeObj.WriteMem32(0x000FFF8C, 0x8F74000C)
eeObj.WriteMem32(0x000FFF90, 0x08049C44)
eeObj.WriteMem32(0x000FFF98, 0x3C1B000F)
eeObj.WriteMem32(0x000FFF9C, 0x377BFF00)
eeObj.WriteMem32(0x000FFFA0, 0x3C027120)
eeObj.WriteMem32(0x000FFFA4, 0x3442CDA8)
eeObj.WriteMem32(0x000FFFA8, 0x8F7BFFF0)
eeObj.WriteMem32(0x000FFFAC, 0x8F7B0000)
eeObj.WriteMem32(0x000FFFB0, 0x1762FFDB)
eeObj.WriteMem32(0x000FFFB8, 0x08049C44)
end
emuObj.AddVsyncHook(patcher)
 
</pre>
 
====Ratchet and Clank 3: Up Your Arsenal====
 
<br>SCUS97353
<br>Author: Kozarovv
<pre>
-- 23.07.2023 Added debug stuff that should print in klog.
-- This should help us figure out why patch fail.


--Check if patcher's needed
apiRequest(1.0)
eeObj.WriteMem32(0x000FFA00, 0x3C1B7120)
eeObj.WriteMem32(0x000FFA04, 0x377BCDA8)
local em  = getEmuObject()
eeObj.WriteMem32(0x000FFA08, 0x3C02000F)
local ee  = getEEObject()
eeObj.WriteMem32(0x000FFA10, 0xAC44FFF4)
eeObj.WriteMem32(0x000FFA0C, 0x3442FA00)
local patcher = function()
eeObj.WriteMem32(0x000FFA14, 0xAC45FFF0)
   
eeObj.WriteMem32(0x000FFA18, 0x8C44FFFC)
    print("CONFIG: Entering patcher!")
eeObj.WriteMem32(0x000FFA1C, 0x8C840000)
    local base = -1
eeObj.WriteMem32(0x000FFA20, 0x149B0003)
    local addr = -1
eeObj.WriteMem32(0x000FFA28, 0x08049C44)
    --local spmp = -1
eeObj.WriteMem32(0x000FFA2C, 0x241B0000)
   
eeObj.WriteMem32(0x000FFA34, 0xAC43FFF8)
    -- Check for SP/MP, not working yet. Only SP supported.
eeObj.WriteMem32(0x000FFA38, 0x3C040010)
    --spmp = ee.ReadMem32(0x13B3D8)
eeObj.WriteMem32(0x000FFA3C, 0x24840004)
    --if spmp == 0x0000202d then
eeObj.WriteMem32(0x000FFA40, 0x8C830000)
    --    addr = 0x13B3D8
eeObj.WriteMem32(0x000FFA44, 0x107B0003)
    --else
eeObj.WriteMem32(0x000FFA4C, 0x1000FFFB)
    --    addr = 0x13B3D8
--Patcher
    --end
eeObj.WriteMem32(0x000FFA54, 0xAC44FFFC)
eeObj.WriteMem32(0x000FFA64, 0x3C030C03)
    -- Search for base.
eeObj.WriteMem32(0x000FFA68, 0x3463FE48)
    addr = 0x13B3D8
eeObj.WriteMem32(0x000FFA6C, 0xAC8300BC) --First 6 vi01
    while addr < 0x1000000
eeObj.WriteMem32(0x000FFA78, 0xAC8301FC)
    do
eeObj.WriteMem32(0x000FFA84, 0xAC830354)
        if ee.ReadMem32(addr) == 0x8c810014 then
eeObj.WriteMem32(0x000FFA90, 0xAC830494)
            if ee.ReadMem32(addr + 4) == 0x3c067000 then
eeObj.WriteMem32(0x000FFA9C, 0xAC8305EC)
                if ee.ReadMem32(addr + 8) == 0x7cdf1ff0 then
eeObj.WriteMem32(0x000FFAA8, 0xAC83072C)
                    base = addr
eeObj.WriteMem32(0x000FFAAC, 0x3C030C03)
                    break
eeObj.WriteMem32(0x000FFAB0, 0x3463FE4B)
                else
eeObj.WriteMem32(0x000FFAB4, 0xAC83015C) --First 4 vi02
                    addr = addr + 4
eeObj.WriteMem32(0x000FFAC0, 0xAC8302AC)
                end
eeObj.WriteMem32(0x000FFACC, 0xAC8303F4)
            else
eeObj.WriteMem32(0x000FFAD8, 0xAC830544)
                addr = addr + 4
--Physics (COP2 timing issues that I'm fixing through patches instead) (Camera, glove weapon, and gravity, but not ledge-hanging)
            end
eeObj.WriteMem32(0x000FFADC, 0x3C032401)
        else
eeObj.WriteMem32(0x000FFAE0, 0x346300E0)
            addr = addr + 4
eeObj.WriteMem32(0x000FFAE4, 0xAC831214) --(gravity) 48418800
        end
--Ret
    end
eeObj.WriteMem32(0x000FFC0C, 0x8C44FFF4)
   
eeObj.WriteMem32(0x000FFC10, 0x8C45FFF0)
    -- Shouldn't be the case.
eeObj.WriteMem32(0x000FFC14, 0x8C43FFF8)
    if base == -1 then
eeObj.WriteMem32(0x000FFC18, 0x08049C44)
        print("CONFIG: Base not found!")
--VI01 AND VI02 to burn cycles in (000FF904) using advanceclock
        return
eeObj.WriteMem32(0x000FF914, 0x03E00008)
    end
eeObj.WriteMem32(0x000FF918, 0x241F0000)
    print(string.format("CONFIG: Base = %08x", base))
eeObj.WriteMem32(0x000FF920, 0x48C00800)
    -- Patch ctc2 instances.
eeObj.WriteMem32(0x000FF924, 0x1000FFF7)
    ee.WriteMem32(base + 0x490, 0x0C03FF0C) -- ctc2        $zero, vi2
eeObj.WriteMem32(0x000FF92C, 0x48C01000)
    ee.WriteMem32(base + 0x5e0, 0x0C03FF0C) -- ctc2        $zero, vi2
eeObj.WriteMem32(0x000FF930, 0x1000FFF4)
    ee.WriteMem32(base + 0x728, 0x0C03FF0C) -- ctc2        $zero, vi2
end
    ee.WriteMem32(base + 0x878, 0x0C03FF0C) -- ctc2        $zero, vi2
emuObj.AddVsyncHook(patcher)
    ee.WriteMem32(base + 0x9c0, 0x0C03FF0C) -- ctc2        $zero, vi2
 
    ee.WriteMem32(base + 0xb18, 0x0C03FF0C) -- ctc2        $zero, vi2
 
</pre>
    ee.WriteMem32(base + 0x3f0, 0x0C03FF00) -- ctc2        $zero, vi1
 
    ee.WriteMem32(base + 0x530, 0x0C03FF00) -- ctc2        $zero, vi1
====Ratchet and Clank 3: Up Your Arsenal====
    ee.WriteMem32(base + 0x688, 0x0C03FF00) -- ctc2        $zero, vi1
 
    ee.WriteMem32(base + 0x7c8, 0x0C03FF00) -- ctc2        $zero, vi1
<br>SCUS97353
    ee.WriteMem32(base + 0x920, 0x0C03FF00) -- ctc2        $zero, vi1
<br>Author: Kozarovv
    ee.WriteMem32(base + 0xa60, 0x0C03FF00) -- ctc2        $zero, vi1
<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()
    -- preserve ra
local ee = getEEObject()
    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 patcher = function()
local delayer = function()
      
      
    print("CONFIG: Entering patcher!")
     local check = ee.ReadMem32(0x000ffc00)
     local base = -1
     if check ~= 0xfcd91ff8 then
    local addr = -1
         print("CONFIG: Applying static patches!")
    --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
     end
      
      
    -- Shouldn't be the case.
     -- loop vi1
    if base == -1 then
     ee.WriteMem32(0x000ffc00, 0xfcd91ff8)
        print("CONFIG: Base not found!")
     ee.WriteMem32(0x000ffc04, 0x24190080) -- modify to burn ee cycles before ctc2
        return
     ee.WriteMem32(0x000ffc08, 0x1419ffff)
    end
     ee.WriteMem32(0x000ffc0c, 0x2739ffff)
    print(string.format("CONFIG: Base = %08x", base))
     ee.WriteMem32(0x000ffc10, 0x48c00800)
    -- Patch ctc2 instances.
     ee.WriteMem32(0x000ffc14, 0x24190020) -- modify to burn ee cycles after ctc2
    ee.WriteMem32(base + 0x490, 0x0C03FF0C) -- ctc2        $zero, vi2
     ee.WriteMem32(0x000ffc18, 0x1419ffff)
    ee.WriteMem32(base + 0x5e0, 0x0C03FF0C) -- ctc2        $zero, vi2
     ee.WriteMem32(0x000ffc1c, 0x2739ffff)
    ee.WriteMem32(base + 0x728, 0x0C03FF0C) -- ctc2        $zero, vi2
     ee.WriteMem32(0x000ffc20, 0x03e00008)
    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)
     ee.WriteMem32(0x000ffc24, 0xdcd91ff8)
      
      
Line 5,070: Line 5,059:
--gs-use-mipmap=1
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
--gs-kernel-cl-up="up2x2simple"
#Fix VU0 sync (raise or lower it as convenient)
#Fix VU0 sync
--ee-hook=0x000FF904,AdvanceClock,,395
--ee-hook=0x000FF904,AdvanceClock,,375
</pre>
</pre>
<br>Author: Scalerize
<br>Author: Scalerize
<br>LUA
<pre>
<pre>
apiRequest(0.1)
apiRequest(0.1)
Line 5,120: Line 5,108:
eeObj.WriteMem32(0x000FFACC, 0xAC8303F4)
eeObj.WriteMem32(0x000FFACC, 0xAC8303F4)
eeObj.WriteMem32(0x000FFAD8, 0xAC830544)
eeObj.WriteMem32(0x000FFAD8, 0xAC830544)
--Physics (COP2 timing issues that I'm fixing through patches instead) (Camera, glove weapon, and gravity)
--Physics
eeObj.WriteMem32(0x000FFADC, 0x3C032401)
eeObj.WriteMem32(0x000FFADC, 0x3C032401)
eeObj.WriteMem32(0x000FFAE0, 0x346300E0)
eeObj.WriteMem32(0x000FFAE0, 0x346300E0)
eeObj.WriteMem32(0x000FFAE4, 0xAC8311E4) --gravity
eeObj.WriteMem32(0x000FFAE4, 0xAC8311E4)
eeObj.WriteMem32(0x000FFAF0, 0xAC833F64) --camera, glove weapon
--Ret
--Ret
eeObj.WriteMem32(0x000FFC0C, 0x8C44FFF4)
eeObj.WriteMem32(0x000FFC0C, 0x8C44FFF4)
Line 5,139: Line 5,126:
end
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(patcher)


</pre>
</pre>
Line 5,146: Line 5,132:
<br>'''CLI'''
<br>'''CLI'''
<br>Emu = '''War of the Monsters'''
<br>Emu = '''War of the Monsters'''
<br>SCUS-97268
<pre>
<pre>
#Fix graphics
#Fix graphics
--gs-use-mipmap=1
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="mipmap2x2"
--gs-kernel-cl-up="up2x2simple"
#Fix VU0 sync (raise or lower it as convenient)
--ee-hook=0x000FF904,AdvanceClock,,395
</pre>
</pre>


'''LUA'''
'''LUA'''
<br>SCUS-97268
<br>SCUS-97268
<br>Author:Scalerize
<pre>
<pre>
apiRequest(0.1)
apiRequest(0.1)
Line 5,165: Line 5,149:


local patcher = function()
local patcher = function()
--jmp
eeObj.WriteMem32(0x0011B18C, 0x0803FFE6)
eeObj.WriteMem32(0x0011B18C, 0x0803FE80)
eeObj.WriteMem32(0x000FFA00, 0x241B0014)
eeObj.WriteMem32(0x000FFA04, 0x4A000038)
eeObj.WriteMem32(0x000FFA08, 0x277BFFFF)
eeObj.WriteMem32(0x000FFA0C, 0x1760FFFE)
eeObj.WriteMem32(0x000FFA18, 0x03E00008)
eeObj.WriteMem32(0x000FFA34, 0x48C00800)
eeObj.WriteMem32(0x000FFA38, 0x241B00A8)
eeObj.WriteMem32(0x000FFA3C, 0x277BFFFF)
eeObj.WriteMem32(0x000FFA40, 0x1760FFFE)
eeObj.WriteMem32(0x000FFA4C, 0x03E00008)
eeObj.WriteMem32(0x000FFA50, 0x241F0000)
eeObj.WriteMem32(0x000FFA68, 0x48C01000)
eeObj.WriteMem32(0x000FFA6C, 0x241B00A8)
eeObj.WriteMem32(0x000FFA70, 0x277BFFFF)
eeObj.WriteMem32(0x000FFA74, 0x1760FFFE)
eeObj.WriteMem32(0x000FFA80, 0x03E00008)
eeObj.WriteMem32(0x000FFA84, 0x241F0000)
eeObj.WriteMem32(0x000FFCA8, 0x3C150C03)
eeObj.WriteMem32(0x000FFCAC, 0x36B5FE80)
eeObj.WriteMem32(0x000FFCB0, 0x8EF60004)
eeObj.WriteMem32(0x000FFCB4, 0x12D500B1)
eeObj.WriteMem32(0x000FFCC0, 0xAEF50004)
eeObj.WriteMem32(0x000FFCC4, 0x3C150C03)
eeObj.WriteMem32(0x000FFCC8, 0x36B5FE89)
eeObj.WriteMem32(0x000FFCCC, 0xAEF500BC)
eeObj.WriteMem32(0x000FFCD0, 0xAEF501FC)
eeObj.WriteMem32(0x000FFCD4, 0xAEF50354)
eeObj.WriteMem32(0x000FFCD8, 0xAEF50494)
eeObj.WriteMem32(0x000FFCDC, 0xAEF505EC)
eeObj.WriteMem32(0x000FFCE0, 0xAEF5072C)
eeObj.WriteMem32(0x000FFCE4, 0x3C150C03)
eeObj.WriteMem32(0x000FFCE8, 0x36B5FE96)
eeObj.WriteMem32(0x000FFCEC, 0xAEF5015C)
eeObj.WriteMem32(0x000FFCF0, 0xAEF502AC)
eeObj.WriteMem32(0x000FFCF4, 0xAEF503F4)
eeObj.WriteMem32(0x000FFCF8, 0xAEF50544)
eeObj.WriteMem32(0x000FFD04, 0x3C1548C2)
eeObj.WriteMem32(0x000FFD08, 0x36B58800)
eeObj.WriteMem32(0x000FFD0C, 0xAEF511F4)
eeObj.WriteMem32(0x000FFD10, 0xAEE0120C)
eeObj.WriteMem32(0x000FFD14, 0x10000099)
eeObj.WriteMem32(0x000FFF20, 0x3C1B000F)
eeObj.WriteMem32(0x000FFF24, 0x377BFF00)
eeObj.WriteMem32(0x000FFF28, 0xAF770000)
eeObj.WriteMem32(0x000FFF2C, 0xAF760004)
eeObj.WriteMem32(0x000FFF30, 0xAF750008)
eeObj.WriteMem32(0x000FFF34, 0xAF74000C)
eeObj.WriteMem32(0x000FFF4C, 0x3C170020)
eeObj.WriteMem32(0x000FFF50, 0x3C157120)
eeObj.WriteMem32(0x000FFF54, 0x36B5CDA8)
eeObj.WriteMem32(0x000FFF68, 0x8EF40000)
eeObj.WriteMem32(0x000FFF6C, 0x1295FF4E)
eeObj.WriteMem32(0x000FFF74, 0x1000FFFC)
eeObj.WriteMem32(0x000FFF78, 0x26F70004)
eeObj.WriteMem32(0x000FFF7C, 0xAF77FFF0)
eeObj.WriteMem32(0x000FFF80, 0x8F770000)
eeObj.WriteMem32(0x000FFF84, 0x8F760004)
eeObj.WriteMem32(0x000FFF88, 0x8F750008)
eeObj.WriteMem32(0x000FFF8C, 0x8F74000C)
eeObj.WriteMem32(0x000FFF90, 0x08046C64)
eeObj.WriteMem32(0x000FFF98, 0x3C1B000F)
eeObj.WriteMem32(0x000FFF9C, 0x377BFF00)
eeObj.WriteMem32(0x000FFFA0, 0x3C027120)
eeObj.WriteMem32(0x000FFFA4, 0x3442CDA8)
eeObj.WriteMem32(0x000FFFA8, 0x8F7BFFF0)
eeObj.WriteMem32(0x000FFFAC, 0x8F7B0000)
eeObj.WriteMem32(0x000FFFB0, 0x1762FFDB)
eeObj.WriteMem32(0x000FFFB8, 0x08046C64)
end
emuObj.AddVsyncHook(patcher)
 
 
 
</pre>
 
====Ratchet & Clank 1====
<br>'''CLI'''
<br>Emu = '''War of the Monsters'''
<pre>
#Fix graphics
--gs-use-mipmap=1
--gs-kernel-cl="mipmap"
--gs-kernel-cl-up="up2x2simple"
</pre>


--Check if patcher's needed
'''LUA'''
eeObj.WriteMem32(0x000FFA00, 0x3C1B7120)
<br>SCUS-97199
eeObj.WriteMem32(0x000FFA04, 0x377BCDA8)
<br>Author:Scalerize
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>
<pre>
apiRequest(0.1)
apiRequest(0.1)
Line 5,245: Line 5,245:


local patcher = function()
local patcher = function()
--Initial jmp
eeObj.WriteMem32(0x00118CAC, 0x0803FFE6)
eeObj.WriteMem32(0x0011B1AC, 0x0C03FE80)
eeObj.WriteMem32(0x000FFA00, 0x241B0014)
--Check if patcher's needed
eeObj.WriteMem32(0x000FFA04, 0x4A000038)
eeObj.WriteMem32(0x000FFA00, 0x3C1B000F)
eeObj.WriteMem32(0x000FFA08, 0x277BFFFF)
eeObj.WriteMem32(0x000FFA04, 0x377BFA00)
eeObj.WriteMem32(0x000FFA0C, 0x1760FFFE)
eeObj.WriteMem32(0x000FFA08, 0xAF62FFFC)
eeObj.WriteMem32(0x000FFA18, 0x03E00008)
eeObj.WriteMem32(0x000FFA0C, 0xAF63FFF8)
eeObj.WriteMem32(0x000FFA34, 0x48C00800)
eeObj.WriteMem32(0x000FFA10, 0xAF64FFF4)
eeObj.WriteMem32(0x000FFA38, 0x241B00A8)
eeObj.WriteMem32(0x000FFA14, 0x3C020C03)
eeObj.WriteMem32(0x000FFA3C, 0x277BFFFF)
eeObj.WriteMem32(0x000FFA18, 0x3442FE53)
eeObj.WriteMem32(0x000FFA40, 0x1760FFFE)
eeObj.WriteMem32(0x000FFA1C, 0x8F63FFE8)
eeObj.WriteMem32(0x000FFA4C, 0x03E00008)
eeObj.WriteMem32(0x000FFA20, 0x246305E0)
eeObj.WriteMem32(0x000FFA50, 0x241F0000)
eeObj.WriteMem32(0x000FFA24, 0x8C630000)
eeObj.WriteMem32(0x000FFA68, 0x48C01000)
eeObj.WriteMem32(0x000FFA28, 0x1062FFDF)
eeObj.WriteMem32(0x000FFA6C, 0x241B00A8)
--Create variable and start the patcher
eeObj.WriteMem32(0x000FFA70, 0x277BFFFF)
eeObj.WriteMem32(0x000FFA2C, 0x3C027829)
eeObj.WriteMem32(0x000FFA74, 0x1760FFFE)
eeObj.WriteMem32(0x000FFA30, 0x34420010)
eeObj.WriteMem32(0x000FFA80, 0x03E00008)
eeObj.WriteMem32(0x000FFA34, 0x3C030010)
eeObj.WriteMem32(0x000FFA84, 0x241F0000)
eeObj.WriteMem32(0x000FFA38, 0x8C640000)
eeObj.WriteMem32(0x000FFCA8, 0x3C150C03)
eeObj.WriteMem32(0x000FFA3C, 0x10820003)
eeObj.WriteMem32(0x000FFCAC, 0x36B5FE80)
eeObj.WriteMem32(0x000FFA44, 0x24630004)
eeObj.WriteMem32(0x000FFCB0, 0x8EF60004)
eeObj.WriteMem32(0x000FFA48, 0x1000FFFB)
eeObj.WriteMem32(0x000FFCB4, 0x12D500B1)
eeObj.WriteMem32(0x000FFA50, 0xAF63FFE8)
eeObj.WriteMem32(0x000FFCC0, 0xAEF50004)
--VI01 patcher
eeObj.WriteMem32(0x000FFCC4, 0x3C150C03)
eeObj.WriteMem32(0x000FFA54, 0x3C020C03)
eeObj.WriteMem32(0x000FFCC8, 0x36B5FE89)
eeObj.WriteMem32(0x000FFA58, 0x3442FE50)
eeObj.WriteMem32(0x000FFCCC, 0xAEF500BC)
eeObj.WriteMem32(0x000FFA5C, 0xAC620158)
eeObj.WriteMem32(0x000FFCD0, 0xAEF501FC)
eeObj.WriteMem32(0x000FFA60, 0xAC620298)
eeObj.WriteMem32(0x000FFCD4, 0xAEF50354)
eeObj.WriteMem32(0x000FFA64, 0xAC6203F0)
eeObj.WriteMem32(0x000FFCD8, 0xAEF50494)
eeObj.WriteMem32(0x000FFA68, 0xAC620530)
eeObj.WriteMem32(0x000FFCDC, 0xAEF505EC)
eeObj.WriteMem32(0x000FFA6C, 0xAC620688)
eeObj.WriteMem32(0x000FFCE0, 0xAEF5072C)
eeObj.WriteMem32(0x000FFA70, 0xAC6207C8)
eeObj.WriteMem32(0x000FFCE4, 0x3C150C03)
--VI02 patcher
eeObj.WriteMem32(0x000FFCE8, 0x36B5FE96)
eeObj.WriteMem32(0x000FFA74, 0x3C020C03)
eeObj.WriteMem32(0x000FFCEC, 0xAEF5015C)
eeObj.WriteMem32(0x000FFA78, 0x3442FE53)
eeObj.WriteMem32(0x000FFCF0, 0xAEF502AC)
eeObj.WriteMem32(0x000FFA7C, 0xAC6201F8)
eeObj.WriteMem32(0x000FFCF4, 0xAEF503F4)
eeObj.WriteMem32(0x000FFA80, 0xAC620348)
eeObj.WriteMem32(0x000FFCF8, 0xAEF50544)
eeObj.WriteMem32(0x000FFA84, 0xAC620490)
eeObj.WriteMem32(0x000FFD04, 0x3C1548C2)
eeObj.WriteMem32(0x000FFA88, 0xAC6205E0)
eeObj.WriteMem32(0x000FFD08, 0x36B58800)
--Physics
eeObj.WriteMem32(0x000FFD0C, 0xAEF511B0)
eeObj.WriteMem32(0x000FFA8C, 0x3C022401)
eeObj.WriteMem32(0x000FFD10, 0xAEE011C8)
eeObj.WriteMem32(0x000FFA90, 0x344200E0)
eeObj.WriteMem32(0x000FFD14, 0x10000099)
eeObj.WriteMem32(0x000FFA94, 0xAC621290) -- (gravity) 48418800
eeObj.WriteMem32(0x000FFF20, 0x3C1B000F)
--Ret
eeObj.WriteMem32(0x000FFF24, 0x377BFF00)
eeObj.WriteMem32(0x000FF9A8, 0x8F62FFFC)
eeObj.WriteMem32(0x000FFF28, 0xAF770000)
eeObj.WriteMem32(0x000FF9AC, 0x8F63FFF8)
eeObj.WriteMem32(0x000FFF2C, 0xAF760004)
eeObj.WriteMem32(0x000FF9B0, 0x8F64FFF4)
eeObj.WriteMem32(0x000FFF30, 0xAF750008)
eeObj.WriteMem32(0x000FF9BC, 0x241B0000)
eeObj.WriteMem32(0x000FFF34, 0xAF74000C)
eeObj.WriteMem32(0x000FF9C0, 0x08047D78)
eeObj.WriteMem32(0x000FFF38, 0x3C170009)
--B to ret
eeObj.WriteMem32(0x000FFF50, 0x3C157120)
eeObj.WriteMem32(0x000FFABC, 0x1000FFBA)
eeObj.WriteMem32(0x000FFF54, 0x36B5CDA8)
-- CTC2 cmnds
eeObj.WriteMem32(0x000FFF68, 0x8EF40000)
eeObj.WriteMem32(0x000FF928, 0x03E00008)
eeObj.WriteMem32(0x000FFF6C, 0x1295FF4E)
eeObj.WriteMem32(0x000FF92C, 0x241F0000)
eeObj.WriteMem32(0x000FFF74, 0x1000FFFC)
eeObj.WriteMem32(0x000FF940, 0x48C00800)
eeObj.WriteMem32(0x000FFF78, 0x26F70004)
eeObj.WriteMem32(0x000FF944, 0x1000FFF4)
eeObj.WriteMem32(0x000FFF7C, 0xAF77FFF0)
eeObj.WriteMem32(0x000FF94C, 0x48C01000)
eeObj.WriteMem32(0x000FFF80, 0x8F770000)
eeObj.WriteMem32(0x000FF950, 0x1000FFF1)
eeObj.WriteMem32(0x000FFF84, 0x8F760004)
eeObj.WriteMem32(0x000FFF88, 0x8F750008)
eeObj.WriteMem32(0x000FFF8C, 0x8F74000C)
eeObj.WriteMem32(0x000FFF90, 0x0804632C)
eeObj.WriteMem32(0x000FFF98, 0x3C1B000F)
eeObj.WriteMem32(0x000FFF9C, 0x377BFF00)
eeObj.WriteMem32(0x000FFFA0, 0x3C027120)
eeObj.WriteMem32(0x000FFFA4, 0x3442CDA8)
eeObj.WriteMem32(0x000FFFA8, 0x8F7BFFF0)
eeObj.WriteMem32(0x000FFFAC, 0x8F7B0000)
eeObj.WriteMem32(0x000FFFB0, 0x1762FFDB)
eeObj.WriteMem32(0x000FFFB8, 0x0804632C)
end
end
emuObj.AddVsyncHook(patcher)
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>
</pre>


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)