User:Scalerize: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
No edit summary
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
IOP audi restarting debugging address? 1F801574 > BF801574
wotm: 4A72C2
=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
--cop2-di-bits=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=none
--gs-uprender=none
#cdvd
--verbose-cdvd-reads=1
--cdvd-sector-read-cycles=64000
#lang
--ps2-lang=English
</pre>
Move this info elsewhere:
<br>'''Delay GIF'''
<pre>
<pre>
apiRequest(0.1)
apiRequest(0.1)
Line 4: Line 64:
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 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>

Revision as of 16:06, 21 December 2024

IOP audi restarting debugging address? 1F801574 > BF801574 wotm: 4A72C2

Universal safe debugging CLI

#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
--cop2-di-bits=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=none
--gs-uprender=none
#cdvd
--verbose-cdvd-reads=1
--cdvd-sector-read-cycles=64000
#lang
--ps2-lang=English

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)