Editing Custom Configuration Files
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 379: | Line 379: | ||
eeInsnReplace(0x262608, 0xE4400000, 0xAC410000) | eeInsnReplace(0x262608, 0xE4400000, 0xAC410000) | ||
eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)</pre> | eeInsnReplace(0x2564A8, 0x8F829764, 0x24020000)</pre> | ||
====Castlevania: Curse of Darkness==== | ====Castlevania: Curse of Darkness==== | ||
Line 876: | Line 868: | ||
<pre> | <pre> | ||
#Fix for game being stuck | #Fix for game being stuck at main menu with selections moving very fast | ||
--fpu-no-clamping=1 | --fpu-no-clamping=1 | ||
#Speedhack | #Speedhack | ||
Line 1,038: | Line 1,030: | ||
<br>SLUS-20587 | <br>SLUS-20587 | ||
<pre> | <pre> | ||
#Fix for AI cop car | #Fix for AI cop car | ||
--cop2-accurate-addsub-range=0x4b8108,0x4b8408 | --cop2-accurate-addsub-range=0x4b8108,0x4b8408 | ||
#Speedhacks | #Speedhacks | ||
Line 1,044: | Line 1,036: | ||
--vu1-mpg-cycles=2700 | --vu1-mpg-cycles=2700 | ||
--ee-cycle-scalar=1.1 | --ee-cycle-scalar=1.1 | ||
</pre> | </pre> | ||
Line 3,458: | Line 3,445: | ||
<br>'''''CLI''''' | <br>'''''CLI''''' | ||
<pre> | <pre> | ||
#Speedhacks | #Speedhacks + Clamping | ||
--vu1-di-bits=0 | --vu1-di-bits=0 | ||
--vu1-mpg-cycles= | --vu1-const-prop=1 | ||
--vu1-mpg-cycles=800 | |||
-- | --ee-cycle-scalar=1.2 | ||
#Jakv2 Emu Used | #Jakv2 Emu Used | ||
</pre> | </pre> | ||
Line 4,236: | Line 4,223: | ||
#Fix for texture glitches</pre> | #Fix for texture glitches</pre> | ||
====X-Files - Resist or Serve==== | ====X-Files - Resist or Serve==== | ||
Line 4,830: | Line 4,802: | ||
</pre> | </pre> | ||
====Ratchet | ====Ratchet and Clank: Up Your Arsenal==== | ||
<br> | <br>SCUS97353 | ||
<pre> | <pre> | ||
-- 23.07.2023 Added debug stuff that should print in klog. | |||
-- | -- This should help us figure out why patch fail. | ||
-- | |||
apiRequest(1.0) | |||
local em = getEmuObject() | |||
local ee = getEEObject() | |||
local patcher = function() | |||
apiRequest(1.0) | |||
local em = getEmuObject() | |||
local ee = getEEObject() | |||
local patcher = function() | |||
print("CONFIG: Entering patcher!") | print("CONFIG: Entering patcher!") | ||
Line 5,062: | Line 4,950: | ||
</pre> | </pre> | ||
I'm following this approach but it isn't working and I do not know why. --[[User:Scalerize|Scalerize]] ([[User talk:Scalerize|talk]]) 21:55, 28 August 2023 (CEST) | |||
<pre> | <pre> | ||
apiRequest(0.1) | apiRequest(0.1) | ||
local eeObj = getEEObject() | local eeObj = getEEObject() | ||
eeObj.AddHook(0x0013B3C8, 0x0200F809, function() | |||
local pointer = eeObj.GetGpr(gpr.s0) | |||
end) | |||
eeObj. | |||
eeObj. | |||
end | |||
--vcallms before | |||
eeObj.AddHook(pointer+0x5496C, 0x7120CDA8, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vcallms after | |||
eeObj.AddHook(pointer+0x54974, 0x00000000, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 before 1 | |||
eeObj.AddHook(pointer+0x54A24, 0x00000000, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 before 2 | |||
eeObj.AddHook(pointer+0x54B64, 0x7019CC3F, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 before 3 | |||
eeObj.AddHook(pointer+0x54CBC, 0x00000000, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 before 4 | |||
eeObj.AddHook(pointer+0x54DFC, 0x7019CC3F, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 before 5 | |||
eeObj.AddHook(pointer+0x54F54, 0x0019C900, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 before 6 | |||
eeObj.AddHook(pointer+0x55094, 0x7017BEC8, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 after 1 | |||
eeObj.AddHook(pointer+0x54A2C, 0x00000000, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 after 2 | |||
eeObj.AddHook(pointer+0x54B6C, 0x00000000, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 after 3 | |||
eeObj.AddHook(pointer+0x54CC4, 0x00000000, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 after 4 | |||
eeObj.AddHook(pointer+0x54E04, 0x00000000, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 after 5 | |||
eeObj.AddHook(pointer+0x54F5C, 0x000F7880, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi01 after 6 | |||
eeObj.AddHook(pointer+0x5509C, 0x71D18D88, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi02 before 1 | |||
eeObj.AddHook(pointer+0x54AC4, 0x701188FC, function() | |||
eeObj. | eeObj.AdvanceClock(500) | ||
end) | |||
-- | --vi02 before 2 | ||
eeObj.AddHook(pointer+0x54C14, 0x7120CDA8, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
eeObj. | |||
eeObj. | |||
end | |||
--vi02 before 3 | |||
eeObj.AddHook(pointer+0x54D5C, 0x701188FC, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi02 before 4 | |||
eeObj.AddHook(pointer+0x54EAC, 0x7120CDA8, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi02 before 5 | |||
eeObj.AddHook(pointer+0x54FF4, 0x0019C900, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi02 before 6 | |||
eeObj.AddHook(pointer+0x5514C, 0x00000000, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi02 after 1 | |||
eeObj.AddHook(pointer+0x54ACC, 0x70E0CDA8, function() | |||
eeObj.AdvanceClock(500) | |||
-- | end) | ||
eeObj. | |||
eeObj. | |||
end | |||
--vi02 after 2 | |||
eeObj.AddHook(pointer+0x54C1C, 0x7009E688, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi02 after 3 | |||
eeObj.AddHook(pointer+0x54D64, 0x70E0CDA8, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi02 after 4 | |||
eeObj.AddHook(pointer+0x54EB4, 0x7009E688, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
--vi02 after 5 | |||
eeObj.AddHook(pointer+0x54FFC, 0x22310006, function() | |||
eeObj. | eeObj.AdvanceClock(500) | ||
end) | |||
-- | --vi02 after 6 | ||
eeObj.AddHook(pointer+0x55154, 0x00000000, function() | |||
eeObj.AdvanceClock(500) | |||
end) | |||
eeObj. | |||
eeObj. | |||
end | |||
</pre> | </pre> | ||
You need to define pointer as a global variable or define it inside more advanced function, otherwise it is deleted/undefined when you exit first hook. Additionally your code use aliases without importing required file. This can be fixed by importing it or by using 16 instead of gpr.s0. Next thing is that all those hooks imo should be mounted from single function to ensure that all new hooks are added when game step on first hook. Keep in mind that the way you are obtaining ctc addresses can fail for next stages. Finally, when leaving stage you need to remove those hooks. Because they stay there forever, and that address can already hold different code after stage change. This is because hook check for original opcode is done only when mounting it there, not when running code itself. On top of that game overlay loader which you should use to grab pointer IS NOT used to load main menu screen, so you need to patch it manually or at least with another hook. I don't have ratchet elf now here, but make sure that your initial hook is added in place where new level code is already there, because now it seems that your initial hook is before level loader is even launched. --[[User:Kozarovv|Kozarovv]] ([[User talk:Kozarovv|talk]]) 12:06, 29 August 2023 (CEST) | |||
====Robot Alchemic Drive==== | ====Robot Alchemic Drive==== |