File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -8,7 +8,8 @@ namespace Sonicteam::Camera
88 MARATHON_INSERT_PADDING (0x1C );
99 be<float > m_SpringK;
1010 be<float > m_DampingK;
11- MARATHON_INSERT_PADDING (0x08 );
11+ be<float > m_AzDamping;
12+ be<float > m_AltDamping;
1213 be<float > m_AzDriveK;
1314 be<float > m_AzDampingK;
1415 be<float > m_AltDriveK;
Original file line number Diff line number Diff line change 1- #include < api/Marathon.h>
21#include < user/config.h>
32
4- // Load Sonicteam::Camera::SonicCamera parameters
5- PPC_FUNC_IMPL (__imp__sub_82192218);
6- PPC_FUNC (sub_82192218)
3+ void SonicCamera_InvertAzDriveK (PPCRegister& az_driveK)
74{
8- auto pSonicCamera = (Sonicteam::Camera::SonicCamera*)g_memory.Translate (ctx.r3 .u32 );
5+ // X axis is inverted by default.
6+ if (Config::HorizontalCamera != ECameraRotationMode::Normal)
7+ return ;
98
10- __imp__sub_82192218 (ctx, base);
9+ az_driveK.f64 = -az_driveK.f64 ;
10+ }
1111
12- // X axis is inverted by default.
13- if (Config::HorizontalCamera == ECameraRotationMode::Normal)
14- pSonicCamera->m_AzDriveK = -pSonicCamera->m_AzDriveK ;
12+ void SonicCamera_InvertAltDriveK (PPCRegister& alt_driveK)
13+ {
14+ if (Config::VerticalCamera != ECameraRotationMode::Reverse)
15+ return ;
1516
16- if (Config::VerticalCamera == ECameraRotationMode::Reverse)
17- pSonicCamera->m_AltDriveK = -pSonicCamera->m_AltDriveK ;
17+ alt_driveK.f64 = -alt_driveK.f64 ;
1818}
Original file line number Diff line number Diff line change @@ -13,8 +13,13 @@ PPC_FUNC(sub_82587AA8)
1313 __imp__sub_82587AA8 (ctx, base);
1414}
1515
16- void PostureControlRotationSpeedFix (PPCRegister& c_rotation_speed, PPCRegister& stack)
16+ void PostureControl_RotationSpeedFix (PPCRegister& c_rotation_speed, PPCRegister& stack)
1717{
18- double deltaTime = *(be<double >*)g_memory.Translate (stack.u32 + 0x200 );
19- c_rotation_speed.f64 = (c_rotation_speed.f64 * (60 .0f * deltaTime));
18+ auto deltaTime = *(be<double >*)g_memory.Translate (stack.u32 + 0x200 );
19+ c_rotation_speed.f64 = (c_rotation_speed.f64 * (60.0 * deltaTime));
20+ }
21+
22+ void SonicCamera_RotationSpeedFix (PPCRegister& f0, PPCRegister& deltaTime, PPCRegister& f13)
23+ {
24+ f0.f64 = float ((f0.f64 * (deltaTime.f64 * (1.0 / (deltaTime.f64 * 60.0 )))) + f13.f64 );
2025}
Original file line number Diff line number Diff line change @@ -201,7 +201,7 @@ address = 0x82311E50
201201jump_address_on_true = 0x82311E54
202202
203203[[midasm_hook ]]
204- name = " PostureControlRotationSpeedFix "
204+ name = " PostureControl_RotationSpeedFix "
205205address = 0x82201C6C
206206registers = [" f1" , " r1" ]
207207
@@ -338,6 +338,28 @@ name = "NOP"
338338address = 0x8258E600
339339jump_address = 0x8258E604
340340
341+ [[midasm_hook ]]
342+ name = " SonicCamera_InvertAzDriveK"
343+ address = 0x82191D40
344+ registers = [" f12" ]
345+
346+ [[midasm_hook ]]
347+ name = " SonicCamera_InvertAltDriveK"
348+ address = 0x82191E00
349+ registers = [" f12" ]
350+
351+ [[midasm_hook ]]
352+ name = " SonicCamera_RotationSpeedFix"
353+ address = 0x82191DA0
354+ registers = [" f0" , " f31" , " f13" ]
355+ jump_address = 0x82191DA4
356+
357+ [[midasm_hook ]]
358+ name = " SonicCamera_RotationSpeedFix"
359+ address = 0x82191E28
360+ registers = [" f0" , " f31" , " f13" ]
361+ jump_address = 0x82191E2C
362+
341363[[midasm_hook ]]
342364name = " RestoreChaosSpearFlips"
343365address = 0x821A6730
You can’t perform that action at this time.
0 commit comments