Skip to content

Commit 322ea72

Browse files
hyperbxReimousTH
andcommitted
Fix suck power
Co-Authored-By: ReimousTH <51449880+ReimousTH@users.noreply.github.com>
1 parent 20ab22c commit 322ea72

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

MarathonRecomp/patches/fps_patches.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ PPC_FUNC(sub_82587AA8)
1616
void PostureControl_RotationSpeedFix(PPCRegister& c_rotation_speed, PPCRegister& stack)
1717
{
1818
auto deltaTime = *(be<double>*)g_memory.Translate(stack.u32 + 0x200);
19+
1920
c_rotation_speed.f64 = (c_rotation_speed.f64 * (60.0 * deltaTime));
2021
}
2122

@@ -107,7 +108,14 @@ void ObjectInputWarp_ExtendMsgSuckPlayer(PPCRegister& phantom, PPCRegister& mess
107108
g_userHeap.Free(pNewMessage);
108109
}
109110

110-
void PlayerObject_ProcessMsgSuckPlayer(PPCRegister& message, PPCRegister& deltaTime)
111+
void PlayerObject_ProcessMsgSuckPlayer_FixPower(PPCRegister& message, PPCRegister& power)
112+
{
113+
auto pMessage = (MsgSuckPlayerEx*)(g_memory.Translate(message.u32));
114+
115+
power.f64 = pow(power.f64, pMessage->DeltaTime * 60.0);
116+
}
117+
118+
void PlayerObject_ProcessMsgSuckPlayer_FixDeltaTime(PPCRegister& message, PPCRegister& deltaTime)
111119
{
112120
auto pMessage = (MsgSuckPlayerEx*)(g_memory.Translate(message.u32));
113121

MarathonRecompLib/config/Marathon.toml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,13 +440,24 @@ address = 0x8232A4D0
440440
registers = ["f0", "f13", "f28"]
441441
jump_address = 0x8232A4D4
442442

443+
[[midasm_hook]]
444+
name = "ObjectInputWarp_ExtendMsgSuckPlayer"
445+
address = 0x82389D70
446+
registers = ["r3", "r4", "f25"]
447+
jump_address = 0x82389D74
448+
443449
[[midasm_hook]]
444450
name = "ObjectInputWarp_ExtendMsgSuckPlayer"
445451
address = 0x82389E48
446452
registers = ["r3", "r4", "f25"]
447453
jump_address = 0x82389E4C
448454

449455
[[midasm_hook]]
450-
name = "PlayerObject_ProcessMsgSuckPlayer"
456+
name = "PlayerObject_ProcessMsgSuckPlayer_FixPower"
457+
address = 0x8219B64C
458+
registers = ["r28", "f1"]
459+
460+
[[midasm_hook]]
461+
name = "PlayerObject_ProcessMsgSuckPlayer_FixDeltaTime"
451462
address = 0x8219B660
452463
registers = ["r28", "f31"]

0 commit comments

Comments
 (0)