mirror of
https://github.com/hedge-dev/UnleashedRecomp.git
synced 2025-12-17 13:32:22 +00:00
Use global instead of function provided delta time in cmaera HFR patches.
This commit is contained in:
parent
e403f961aa
commit
cffefcdbf3
2 changed files with 20 additions and 17 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
#include <api/SWA.h>
|
#include <api/SWA.h>
|
||||||
#include <ui/window.h>
|
#include <ui/window.h>
|
||||||
#include <cfg/config.h>
|
#include <cfg/config.h>
|
||||||
|
#include <app.h>
|
||||||
|
|
||||||
float m_lastLoadingFrameDelta = 0.0f;
|
float m_lastLoadingFrameDelta = 0.0f;
|
||||||
std::chrono::steady_clock::time_point m_lastLoadingFrameTime;
|
std::chrono::steady_clock::time_point m_lastLoadingFrameTime;
|
||||||
|
|
@ -36,14 +37,16 @@ static double ComputeLerpFactor(double t, double deltaTime)
|
||||||
return 1.0 - pow(1.0 - t, (30.0 + bias) / (fps + bias));
|
return 1.0 - pow(1.0 - t, (30.0 + bias) / (fps + bias));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CameraLerpFixMidAsmHook(PPCRegister& t, PPCRegister& deltaTime)
|
// It's important to use global delta time here instead of function provided
|
||||||
|
// delta time, as it might be time scaled and not match with 30 FPS behavior.
|
||||||
|
void CameraLerpFixMidAsmHook(PPCRegister& t)
|
||||||
{
|
{
|
||||||
t.f64 = ComputeLerpFactor(t.f64, deltaTime.f64);
|
t.f64 = ComputeLerpFactor(t.f64, g_deltaTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CameraTargetSideOffsetLerpFixMidAsmHook(PPCVRegister& v13, PPCVRegister& v62, PPCRegister& deltaTime)
|
void CameraTargetSideOffsetLerpFixMidAsmHook(PPCVRegister& v13, PPCVRegister& v62)
|
||||||
{
|
{
|
||||||
float factor = float(ComputeLerpFactor(double(v13.f32[0] * v62.f32[0]), deltaTime.f64));
|
float factor = float(ComputeLerpFactor(double(v13.f32[0] * v62.f32[0]), g_deltaTime));
|
||||||
|
|
||||||
for (size_t i = 0; i < 4; i++)
|
for (size_t i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -213,52 +213,52 @@ jump_address = 0x8247DD3C
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247DD48 # Slope
|
address = 0x8247DD48 # Slope
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247DDFC # Dash path binormal
|
address = 0x8247DDFC # Dash path binormal
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247E280 # Target front offset
|
address = 0x8247E280 # Target front offset
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247E300 # Target
|
address = 0x8247E300 # Target
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247E3C8 # Target
|
address = 0x8247E3C8 # Target
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247E4A0 # Target up positive
|
address = 0x8247E4A0 # Target up positive
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247E4E8 # Target up negative
|
address = 0x8247E4E8 # Target up negative
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247E9FC # Position
|
address = 0x8247E9FC # Position
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247EA84 # Position up negative
|
address = 0x8247EA84 # Position up negative
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247EA50 # Position up positive
|
address = 0x8247EA50 # Position up positive
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraDeltaTimeFixMidAsmHook"
|
name = "CameraDeltaTimeFixMidAsmHook"
|
||||||
|
|
@ -269,7 +269,7 @@ jump_address = 0x8247ED34
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247ED40 # Distance offset 1
|
address = 0x8247ED40 # Distance offset 1
|
||||||
registers = ["f0", "f21"]
|
registers = ["f0"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraDeltaTimeFixMidAsmHook"
|
name = "CameraDeltaTimeFixMidAsmHook"
|
||||||
|
|
@ -280,12 +280,12 @@ jump_address = 0x8247ED58
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraLerpFixMidAsmHook"
|
name = "CameraLerpFixMidAsmHook"
|
||||||
address = 0x8247ED64 # Distance offset 2
|
address = 0x8247ED64 # Distance offset 2
|
||||||
registers = ["f13", "f21"]
|
registers = ["f13"]
|
||||||
|
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
name = "CameraTargetSideOffsetLerpFixMidAsmHook"
|
name = "CameraTargetSideOffsetLerpFixMidAsmHook"
|
||||||
address = 0x8247F12C # Target side offset
|
address = 0x8247F12C # Target side offset
|
||||||
registers = ["v13", "v62", "f21"]
|
registers = ["v13", "v62"]
|
||||||
|
|
||||||
# 2D camera HFR fixes
|
# 2D camera HFR fixes
|
||||||
[[midasm_hook]]
|
[[midasm_hook]]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue