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
=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>
<pre>
apiRequest(0.1)
apiRequest(0.1)
Line 5: Line 61:
local emuObj = getEmuObject()
local emuObj = getEmuObject()


eeObj.WriteMem32(0x0011F38C, 0x0803FFC8) -- <-- //Address to change for other Ratchet games
eeObj.AddHook(0x0033A540,0xAC430000, function() eeObj.SchedulerDelayEvent("gif.dma", 0x60500) end)
eeObj.WriteMem32(0x000FFF20, 0x3C1B000F)
</pre>
eeObj.WriteMem32(0x000FFF24, 0x377BFF00)
eeObj.WriteMem32(0x000FFF28, 0xAF770000)
eeObj.WriteMem32(0x000FFF2C, 0xAF760004)
eeObj.WriteMem32(0x000FFF30, 0xAF750008)
eeObj.WriteMem32(0x000FFF34, 0xAF74000C)
eeObj.WriteMem32(0x000FFF38, 0x3C1701FF) -- < -- //Might need to be changed for other Ratchet games
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, 0x24160100) --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
<br>'''Patch EE memory'''
local Hooks = function()
<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()
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10),0x7120CDA8, function() eeObj.AdvanceClock(6000) end)
eeObj.WriteMem32(0x001958A0, 0x10000086)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x8,0x00000000, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0xB8,0x00000000, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0xC0,0x00000000, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x158,0x701188FC, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x160,0x70E0CDA8, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x1F8,0x7019CC3F, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x200,0x00000000, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x2A8,0x7120CDA8, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x2B0,0x7009E688, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x350,0x00000000, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x358,0x00000000, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x3F0,0x701188FC, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x3F8,0x70E0CDA8, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x490,0x7019CC3F, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x498,0x00000000, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x540,0x7120CDA8, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x548,0x7009E688, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x5E8,0x0019C900, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x5F0,0x0325C820, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x688,0x000F7880, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x690,0x22310006, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x728,0x7017BEC8, function() eeObj.AdvanceClock(6000) end)
eeObj.AddHook(eeObj.ReadMem32(0x000FFF10)+0x730,0x71D18D88, function() eeObj.AdvanceClock(6000) end)
end
end
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(Hooks)
</pre>
 
<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)