Implemented free camera (WIP)

Patch "Enable Free Camera" id "EnableFreeCamera" in "Debug" by "Hyper" does
/*
Enables the replay mode camera with controls similar to Generations Free Camera.

Controls:
- Start - toggle pause (use after enabling free camera).
- Back (Select) - toggle free camera.
- Left Stick - move camera.
- Left Stick Button (L3) - teleport player to camera.
- Right Stick - rotate camera.
- Right Stick Button (R3) - teleport camera to player.
- Left Bumper (L1) - move camera down.
- Right Bumper (R1) - move camera up.
- Left Trigger (L2) - move camera at slow speed.
- Right Trigger (R2) - move camera at fast speed.
- Left Trigger (L2) + Right Trigger (R2) - move camera at moderate speed.
- A (Cross) - reset camera speed.
- B (Circle) - decrease base camera speed.
- X (Square) - increase base camera speed.
- Y (Triangle) - reset field of view.
- D-Pad Up - increase field of view.
- D-Pad Down - decrease field of view.
- D-Pad Left - toggle camera position lock.
- D-Pad Right - toggle depth of field.
*/
This commit is contained in:
Hyper
2025-02-16 06:20:48 +00:00
parent df8234ab3b
commit 0aa1a256dd
11 changed files with 306 additions and 6 deletions
+39
View File
@@ -1086,3 +1086,42 @@ registers = ["r4"]
name = "AnimationDataMakeMidAsmHook"
address = 0x82BB38E4
registers = ["r31", "r29", "r28"]
[[midasm_hook]]
name = "EnableFreeCameraMidAsmHook"
address = 0x825389F0
jump_address_on_true = 0x825389F4
[[midasm_hook]]
name = "EnableFreeCameraMidAsmHook"
address = 0x82538A18
jump_address_on_true = 0x82538A1C
[[midasm_hook]]
name = "FreeCameraActivationInputMidAsmHook"
address = 0x824569BC
registers = ["r11", "r27", "r28"]
jump_address_on_true = 0x824569D4
[[midasm_hook]]
name = "FreeCameraTeleportToPlayerInputMidAsmHook"
address = 0x8245C21C
registers = ["r4"]
[[midasm_hook]]
name = "FreeCameraSpeedInputMidAsmHook"
address = 0x8245C318
registers = ["r31"]
jump_address_on_true = 0x8245C38C
# Disable "change to free camera" input.
[[midasm_hook]]
name = "FreeCameraNullInputMidAsmHook"
address = 0x8245BCE4
jump_address_on_true = 0x8245BDB4
# Disable "change to pan camera" input.
[[midasm_hook]]
name = "FreeCameraNullInputMidAsmHook"
address = 0x8245BDC4
jump_address_on_true = 0x8245BEAC