Skip to content

Commit bc980a6

Browse files
henriquegemignaniencounter
authored andcommitted
Match & link CTimeScaleFunctions on PAL
1 parent ed6b790 commit bc980a6

4 files changed

Lines changed: 18 additions & 9 deletions

File tree

‎config/GM8P01_00/splits.txt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2440,9 +2440,9 @@ Kyoto/Animation/CSegStatementSet.cpp:
24402440
.sdata start:0x8046A8C8 end:0x8046A8D0
24412441

24422442
Kyoto/Animation/CTimeScaleFunctions.cpp:
2443-
.text start:0x802E65AC end:0x802E6864
2443+
.text start:0x802E6398 end:0x802E686C
24442444
.rodata start:0x803C2310 end:0x803C2318
2445-
.data start:0x803D533C end:0x803D5358
2445+
.data start:0x803D5320 end:0x803D5358
24462446
.sdata2 start:0x80470678 end:0x80470690
24472447

24482448
Kyoto/Animation/IAnimReader.cpp:

‎config/GM8P01_00/symbols.txt‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11055,9 +11055,9 @@ __dt__21CStackSegStatementSetFv = .text:0x802E5F68; // type:function size:0xC0
1105511055
__ct__21CStackSegStatementSetFv = .text:0x802E6028; // type:function size:0xCC
1105611056
Add__16CSegStatementSetFRC10CSegIdListRC15CCharLayoutInfoRC16CSegStatementSetf = .text:0x802E60F4; // type:function size:0x1AC
1105711057
__ct__16CSegStatementSetFPv = .text:0x802E62A0; // type:function size:0xF8
11058-
fn_802E6398 = .text:0x802E6398; // type:function size:0x8
11059-
fn_802E63A0 = .text:0x802E63A0; // type:function size:0x110
11060-
fn_802E64B0 = .text:0x802E64B0; // type:function size:0xFC
11058+
GetType__25CLinearAnimationTimeScaleCFv = .text:0x802E6398; // type:function size:0x8 scope:global
11059+
VGetFunctionMirrored__25CLinearAnimationTimeScaleCFRCf = .text:0x802E63A0; // type:function size:0x110 scope:global
11060+
VClone__25CLinearAnimationTimeScaleCFv = .text:0x802E64B0; // type:function size:0xFC scope:global
1106111061
VFindUpperLimit__25CLinearAnimationTimeScaleCFRCfRCf = .text:0x802E65AC; // type:function size:0x24
1106211062
FindUpperLimitFromRoot__25CLinearAnimationTimeScaleFRCQ225CLinearAnimationTimeScale20CFunctionDescriptionRCfRCf = .text:0x802E65D0; // type:function size:0x12C
1106311063
VTimeScaleIntegral__25CLinearAnimationTimeScaleCFRCfRCf = .text:0x802E66FC; // type:function size:0x54
@@ -11066,7 +11066,7 @@ VGetFunctionMirrored__27CConstantAnimationTimeScaleCFRCf = .text:0x802E6780; //
1106611066
VClone__27CConstantAnimationTimeScaleCFv = .text:0x802E67AC; // type:function size:0x88
1106711067
VFindUpperLimit__27CConstantAnimationTimeScaleCFRCfRCf = .text:0x802E6834; // type:function size:0x18
1106811068
VTimeScaleIntegral__27CConstantAnimationTimeScaleCFRCfRCf = .text:0x802E684C; // type:function size:0x18
11069-
fn_802E6864 = .text:0x802E6864; // type:function size:0x8
11069+
GetType__27CConstantAnimationTimeScaleCFv = .text:0x802E6864; // type:function size:0x8 scope:global
1107011070
IsCAnimTreeNode__11IAnimReaderCFv = .text:0x802E686C; // type:function size:0x8 scope:global
1107111071
GetSoundPOIList__11IAnimReaderCFRC13CCharAnimTimeP13CSoundPOINodeUiUii = .text:0x802E6874; // type:function size:0x7C
1107211072
GetParticlePOIList__11IAnimReaderCFRC13CCharAnimTimeP16CParticlePOINodeUiUii = .text:0x802E68F0; // type:function size:0x7C
@@ -24439,10 +24439,10 @@ lbl_80470650 = .sdata2:0x80470650; // type:object size:0x8 align:8 data:double
2443924439
@1199 = .sdata2:0x80470668; // type:object size:0x8 scope:local align:8 data:double
2444024440
@528 = .sdata2:0x80470670; // type:object size:0x4 scope:local align:4 data:float
2444124441
@529 = .sdata2:0x80470674; // type:object size:0x4 scope:local align:4 data:float
24442-
@235 = .sdata2:0x80470678; // type:object size:0x4 scope:local align:4 data:float
24442+
@217 = .sdata2:0x80470678; // type:object size:0x4 scope:local align:4 data:float
2444324443
@296 = .sdata2:0x8047067C; // type:object size:0x4 scope:local align:4 data:float
2444424444
@297 = .sdata2:0x80470680; // type:object size:0x8 scope:local align:8 data:double
24445-
@298 = .sdata2:0x80470688; // type:object size:0x8 scope:local align:4 data:float
24445+
@298 = .sdata2:0x80470688; // type:object size:0x4 scope:local align:4 data:float
2444624446
@916 = .sdata2:0x80470690; // type:object size:0x4 scope:local align:4 data:float
2444724447
lbl_80470698 = .sdata2:0x80470698; // type:object size:0x8 align:8 data:double
2444824448
@1015 = .sdata2:0x804706A0; // type:object size:0x8 scope:local align:4 data:float

‎configure.py‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1618,7 +1618,10 @@ def EquivalentFor(*versions):
16181618
MatchingFor("GM8E01_00", "GM8E01_01", "GM8P01_00"), "Kyoto/Animation/CPOINode.cpp"
16191619
),
16201620
Object(NonMatching, "Kyoto/Animation/CSegStatementSet.cpp"),
1621-
Object(MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/Animation/CTimeScaleFunctions.cpp"),
1621+
Object(
1622+
MatchingFor("GM8E01_00", "GM8E01_01", "GM8P01_00"),
1623+
"Kyoto/Animation/CTimeScaleFunctions.cpp",
1624+
),
16221625
Object(
16231626
MatchingFor("GM8E01_00", "GM8E01_01"), "Kyoto/Animation/IAnimReader.cpp"
16241627
),

‎include/Kyoto/Animation/CTimeScaleFunctions.hpp‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,19 @@ class CLinearAnimationTimeScale : public IVaryingAnimationTimeScale {
6262
: x0_slope(slope), x4_yIntercept(yIntercept), x8_t1(t1), xc_t2(t2) {}
6363

6464
CFunctionDescription FunctionMirroredAround(const float& value) const {
65+
#if VERSION >= VERSION_GM8P_00
66+
float twiceValue = 2.f * value;
67+
return CFunctionDescription(-x0_slope, x4_yIntercept - x0_slope * twiceValue,
68+
twiceValue - xc_t2, twiceValue - x8_t1);
69+
#else
6570
CFunctionDescription result(*this);
6671
float twiceValue = 2.f * value;
6772
result.x0_slope = -x0_slope;
6873
result.x4_yIntercept = x4_yIntercept - x0_slope * twiceValue;
6974
result.x8_t1 = twiceValue - xc_t2;
7075
result.xc_t2 = twiceValue - x8_t1;
7176
return result;
77+
#endif
7278
}
7379

7480
float x0_slope;

0 commit comments

Comments
 (0)