User:Scalerize: Difference between revisions

From PS4 Developer wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
<pre>apiRequest(0.1)
TODO:
 
1: Patch IOP to fix the restarting music
2: Patch the physics instructions
3: Refine the patch's performance
 
Move this info elsewhere:
 
<br>'''Delay GIF'''
<pre>
apiRequest(0.1)


local eeObj = getEEObject()
local eeObj = getEEObject()
local emuObj = getEmuObject()
local emuObj = getEmuObject()
local Pointer = 0
local Previous = 0
eeObj.WriteMem32(0x0011F38C, 0x0803FFC8)
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(0x000FFF7C, 0x8F74000C)
eeObj.WriteMem32(0x000FFF80, 0x8F760004)
eeObj.WriteMem32(0x000FFF84, 0x8F750008)
eeObj.WriteMem32(0x000FFF88, 0xAF770014)
eeObj.WriteMem32(0x000FFF8C, 0x241B0000)
eeObj.WriteMem32(0x000FFF90, 0xAF770014)


local patcher = function()
eeObj.AddHook(0x0033A540,0xAC430000, function() eeObj.SchedulerDelayEvent("gif.dma", 0x60500) end)
</pre>
 
<br>'''Patch EE memory'''
<pre>
apiRequest(0.1)


Pointer == eeObj.ReadMem32(0x000FFF10)
local eeObj = getEEObject()
Previous == eeObj.ReadMem32(0x000FFF14)
local emuObj = getEmuObject()


if Pointer ~= 0 and Previous ~= Pointer then
local patcher = function()
eeObj.AddHook(Pointer, 0x7120CDA8, function() eeObj.AdvanceClock(600) end)
eeObj.WriteMem32(0x001958A0, 0x10000086)
eeObj.AddHook(Pointer+0x8, 0x00000000, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0xB8, 0x00000000, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0xC0, 0x00000000, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x158, 0x701188FC, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x160, 0x70E0CDA8, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x1F8, 0x7019CC3F, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x200, 0x00000000, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x2A8, 0x7120CDA8, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x2B0, 0x7009E688, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x350, 0x00000000, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x358, 0x00000000, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x3F0, 0x701188FC, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x3F8, 0x70E0CDA8, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x490, 0x7019CC3F, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x498, 0x00000000, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x540, 0x7120CDA8, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x548, 0x7009E688, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x5E8, 0x0019C900, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x5F0, 0x0325C820, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x688, 0x000F7880, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x690, 0x22310006, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x728, 0x7017BEC8, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x730, 0x71D18D88, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x7E0, 0x00000000, function() eeObj.AdvanceClock(600) end)
eeObj.AddHook(Pointer+0x7E8, 0x00000000, function() eeObj.AdvanceClock(600) end)
end
end
end
emuObj.AddVsyncHook(patcher)
emuObj.AddVsyncHook(patcher)
</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 22:12, 19 September 2024

TODO:

1: Patch IOP to fix the restarting music 2: Patch the physics instructions 3: Refine the patch's performance

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)