User:Scalerize: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
No edit summary
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
<pre>apiRequest(0.1)
IOP audi restarting debugging address? 1F801574 > BF801574
 
=Universal safe debugging CLI=
<pre>
#ee
--ee-cycle-scalar=1
#iop
--iop-cycle-scalar=1
--iop-evt-check-full=1
#fpu
--fpu-no-clamping=0
--fpu-accurate-muldiv=1
--fpu-accurate-mul-fast=1
--fpu-accurate-addsub=1
#cop2
--cop2-opt-flags=0
--cop2-opt-vf00=0
--cop2-const-prop=0
--cop2-no-clamping=0
--cop2-accurate-mul=1
--cop2-accurate-addsub=1
#vu0
--vu0-opt-flags=0
--vu0-opt-vf00=0
--vu0-const-prop=0
--vu0-no-clamping=0
--vu0-di-bits=1
#vu1
--vu1-opt-flags=0
--vu1-opt-vf00=0
--vu1-const-prop=0
--vu1-no-clamping=0
--vu1-di-bits=1
--vu1-mpg-cycles=1
--assert-path1-ad=1
#vif1 and disabled MTVU (Might crash, or introduce graphical distortions on some games)
--vif1-instant-xfer=0
--vu1=jit-sync
#vu
--vu-xgkick-delay=0
--vu-custom-min-max=0
--vu-branch-hazard=0
--vu-evil-branches=1
#gs
--gs-use-mipmap=1
--gs-use-clut-merge=1
--gs-force-bilinear=0
--gs-upscale=gpu
#cdvd
--verbose-cdvd-reads=1
--cdvd-sector-read-cycles=64000
</pre>
 
Move this info elsewhere:
 
<br>'''Delay GIF'''
<pre>
apiRequest(0.1)


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(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
eeObj.AddHook(0x0033A540,0xAC430000, function() eeObj.SchedulerDelayEvent("gif.dma", 0x60500) end)
local Hooks = function()
</pre>
 
<br>'''Patch EE memory'''
<pre>
apiRequest(0.1)
 
local eeObj = getEEObject()
local emuObj = getEmuObject()


if  eeObj.ReadMem32(0x000FFF10) ~= 0 and eeObj.ReadMem32(0x000FFF14) ~= eeObj.ReadMem32(0x000FFF10) then
local patcher = function()
--Add new hooks
eeObj.WriteMem32(0x001958A0, 0x10000086)
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
if  eeObj.ReadMem32(0x000FFF14) ~= 0 and eeObj.ReadMem32(0x000FFF14) ~= eeObj.ReadMem32(0x000FFF10) then
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
end
emuObj.AddVsyncHook(patcher)
end
</pre>
emuObj.AddVsyncHook(Hooks)
 
<br>'''Speedhacks'''
<pre>
apiRequest(0.1)
 
local eeObj = getEEObject()
local emuObj = getEmuObject()
 
eeObj.AddHook(0x002cc350, 0x78a30000, function()
          eeObj.AdvanceClock(21000)
          eeObj.Vu1MpgCycles(2000)
          eeObj.FastForwardClock()
end)
</pre>
</pre>

Latest revision as of 20:48, 19 December 2024

IOP audi restarting debugging address? 1F801574 > BF801574

Universal safe debugging CLI[edit | edit source]

#ee
--ee-cycle-scalar=1
#iop
--iop-cycle-scalar=1
--iop-evt-check-full=1
#fpu
--fpu-no-clamping=0
--fpu-accurate-muldiv=1
--fpu-accurate-mul-fast=1
--fpu-accurate-addsub=1
#cop2
--cop2-opt-flags=0
--cop2-opt-vf00=0
--cop2-const-prop=0
--cop2-no-clamping=0
--cop2-accurate-mul=1
--cop2-accurate-addsub=1
#vu0
--vu0-opt-flags=0
--vu0-opt-vf00=0
--vu0-const-prop=0
--vu0-no-clamping=0
--vu0-di-bits=1
#vu1
--vu1-opt-flags=0
--vu1-opt-vf00=0
--vu1-const-prop=0
--vu1-no-clamping=0
--vu1-di-bits=1
--vu1-mpg-cycles=1
--assert-path1-ad=1
#vif1 and disabled MTVU (Might crash, or introduce graphical distortions on some games)
--vif1-instant-xfer=0
--vu1=jit-sync
#vu
--vu-xgkick-delay=0
--vu-custom-min-max=0
--vu-branch-hazard=0
--vu-evil-branches=1
#gs
--gs-use-mipmap=1
--gs-use-clut-merge=1
--gs-force-bilinear=0
--gs-upscale=gpu
#cdvd
--verbose-cdvd-reads=1
--cdvd-sector-read-cycles=64000

Move this info elsewhere:


Delay GIF

apiRequest(0.1)

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

eeObj.AddHook(0x0033A540,0xAC430000, function() eeObj.SchedulerDelayEvent("gif.dma", 0x60500) end)


Patch EE memory

apiRequest(0.1)

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

local patcher = function()
eeObj.WriteMem32(0x001958A0, 0x10000086)
end
emuObj.AddVsyncHook(patcher)


Speedhacks

apiRequest(0.1)

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

eeObj.AddHook(0x002cc350, 0x78a30000, function()
          eeObj.AdvanceClock(21000)
          eeObj.Vu1MpgCycles(2000)
          eeObj.FastForwardClock()
end)