1
0
Fork 0

add QFTFreezeEX

This commit is contained in:
sup39 2022-11-02 18:29:58 +09:00
parent b9c3594778
commit ceeb92c50d
4 changed files with 57 additions and 0 deletions

View file

@ -0,0 +1,11 @@
$ QFT Freeze Extra (2022/11/02) [sup39]
04122964 496CDA41
0411EAE4 496D18B9
041335B8 496BCDF5
077F039C 0000002C
801F0384 4BFFFFA8
38000000 4BFFFFA0
38000000 57A3043E
2803034B 4182FF90
28030387 4182FF88
4E800020 00000000

View file

@ -83,3 +83,7 @@ C Stick|State
↙|post-BH7 (pre-Yoshi-unlock) ↙|post-BH7 (pre-Yoshi-unlock)
←|post-SB7 ←|post-SB7
↖|post-NB7 (pre-CM-unlock) ↖|post-NB7 (pre-CM-unlock)
## QFT Freeze Extra
- Legde grab
- Pick up/Throw/Put object

6
src/QFTFreezeEX.ld Normal file
View file

@ -0,0 +1,6 @@
$$ = 0x817f039c;
freezeQFT = 0x817f0348;
$bl$.onTake = 0x8011eae4;
$bl$.onDrop = 0x80122964;
$bl$.onChangeStatus = 0x801335b8;

36
src/QFTFreezeEX.s Normal file
View file

@ -0,0 +1,36 @@
.set state.LedgeGrab, 0x3800034B
.set state.PickUp, 0x383
.set state.Put, 0x80000387
.set state.Throw, 0x80000588
.macro liDX reg val
.if -0x8000 <= \val && \val < 0x8000 || 0xffff8000 <= \val
li \reg, \val@l
.else
lis \reg, \val@h
.if \val&0xffff != 0
ori \reg, \reg, \val@l
.endif
.endif
.endm
.onTake:
lwz r0, 0x384(r31)
b freezeQFT
.onDrop:
li r0, 0
b freezeQFT
.onChangeStatus:
## orig
li r0, 0
## checkstatus
## TODO is checking lower 16 bit enough?
#liDX r12, state.LedgeGrab
#cmplw r29, r12
rlwinm r3, r29, 0, 16, 31
cmplwi r3, state.LedgeGrab@l
beq- freezeQFT
cmplwi r3, state.Put@l
beq- freezeQFT
blr