User:Scalerize: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 4: Line 4:
local eeObj = getEEObject()
local eeObj = getEEObject()
local emuObj = getEmuObject()
local emuObj = getEmuObject()
 
-- We only need to write these opcodes once. Writing in perpetuity is unharmful, sure, but unneeded!
eeObj.WriteMem32(0x0011F38C, 0x0803FFC8) -- <-- //Address to change for other Ratchet games
eeObj.WriteMem32(0x0011F38C, 0x0803FFC8) -- <-- //Address to change for other Ratchet games
eeObj.WriteMem32(0x000FFF20, 0x3C1B000F)
eeObj.WriteMem32(0x000FFF20, 0x3C1B000F)

Revision as of 22:14, 29 August 2024

apiRequest(0.1)

local eeObj = getEEObject()
local emuObj = getEmuObject()
-- We only need to write these opcodes once. Writing in perpetuity is unharmful, sure, but unneeded!
eeObj.WriteMem32(0x0011F38C, 0x0803FFC8) -- <-- //Address to change for other Ratchet games
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, 0x3C1701FF)
eeObj.WriteMem32(0x000FFF3C, 0x36F7FCF0)
eeObj.WriteMem32(0x000FFF40, 0x24167000)
eeObj.WriteMem32(0x000FFF44, 0x26D618B4)
eeObj.WriteMem32(0x000FFF48, 0x8EF70000)
eeObj.WriteMem32(0x000FFF4C, 0x02D7B821)
eeObj.WriteMem32(0x000FFF50, 0x3C157120)
eeObj.WriteMem32(0x000FFF54, 0x36B5CDA8)
eeObj.WriteMem32(0x000FFF5C, 0x12950004)
eeObj.WriteMem32(0x000FFF58, 0x8EF40000)
eeObj.WriteMem32(0x000FFF64, 0x26F70004)
eeObj.WriteMem32(0x000FFF68, 0x1000FFFB)
eeObj.WriteMem32(0x000FFF70, 0xAF770010)
eeObj.WriteMem32(0x000FFF74, 0x8F740014)
eeObj.WriteMem32(0x000FFF78, 0x12970004)
eeObj.WriteMem32(0x000FFF80, 0x24160150) --Ensures the vsync hook catches the value
eeObj.WriteMem32(0x000FFF84, 0x26D6FFFF)
eeObj.WriteMem32(0x000FFF88, 0x16C0FFFE)
eeObj.WriteMem32(0x000FFF90, 0x8F74000C)
eeObj.WriteMem32(0x000FFF94, 0x8F760004)
eeObj.WriteMem32(0x000FFF98, 0x8F750008)
eeObj.WriteMem32(0x000FFF9C, 0xAF770014)
eeObj.WriteMem32(0x000FFFA0, 0x8F770000)
eeObj.WriteMem32(0x000FFFA4, 0x241B0000)
eeObj.WriteMem32(0x000FFFA8, 0x08047CE4) -- <-- //Opcode to change for other Ratchet games

--Continuously check for updates, and patch the necessary offsets
local Hooks = function()

if  eeObj.ReadMem32(0x000FFF10) ~= 0 and eeObj.ReadMem32(0x000FFF14) ~= eeObj.ReadMem32(0x000FFF10) then
--Add new hooks
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10),0x7120CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x8,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0xB8,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0xC0,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x158,0x701188FC, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x160,0x70E0CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x1F8,0x7019CC3F, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x200,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x2A8,0x7120CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x2B0,0x7009E688, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x350,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x358,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x3F0,0x701188FC, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x3F8,0x70E0CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x490,0x7019CC3F, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x498,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x540,0x7120CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x548,0x7009E688, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x5E8,0x0019C900, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x5F0,0x0325C820, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x688,0x000F7880, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x690,0x22310006, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x728,0x7017BEC8, function() eeObj.AdvanceClock(2000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x730,0x71D18D88, function() eeObj.AdvanceClock(2000) end)
--Remove previous hooks
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14),0x7120CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x8,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0xB8,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0xC0,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x158,0x701188FC, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x160,0x70E0CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x1F8,0x7019CC3F, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x200,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x2A8,0x7120CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x2B0,0x7009E688, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x350,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x358,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x3F0,0x701188FC, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x3F8,0x70E0CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x490,0x7019CC3F, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x498,0x00000000, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x540,0x7120CDA8, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x548,0x7009E688, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x5E8,0x0019C900, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x5F0,0x0325C820, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x688,0x000F7880, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x690,0x22310006, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x728,0x7017BEC8, function() eeObj.AdvanceClock(2000) end)
eeObj.RemoveHook(eeObj.ReadMem32(0x000FFF14)+0x730,0x71D18D88, function() eeObj.AdvanceClock(2000) end)
end
end
emuObj.AddVsyncHook(Hooks)