1
0
Fork 0

[Yoshi] use game builtin functions instead

This commit is contained in:
sup39 2022-08-29 01:36:28 +09:00
parent 657b4ee6c4
commit aa866d640f
2 changed files with 32 additions and 42 deletions

View file

@ -1,16 +1,11 @@
$ Spwan Yoshi (2022/08/29) [sup39]
28400D50 000F0800
C0000000 0000000C
818D98B8 7D8C6379
4D820020 806C03F0
7C631B79 4D820020
3CA08040 A0A50D50
54A50EFD 4D820020
812C03E4 7D294B79
4182000C 38000000
98091C84 3C006300
5C002FBE 980300D0
38000008 98030000
80030008 9003000C
C21604C4 00000009
807F03F0 3C808040
A0840D50 54800436
2C000800 40820030
54840EFD 41820028
3C006300 5C0027BE
980300D0 80030008
9003000C 3D808016
618C0640 7D8803A6
4E800020 00000000
E0000000 00000000

View file

@ -1,39 +1,34 @@
.set rMario, 12
.set rFLUDD, 9
.set rYoshi, 3
.set rInput, 5
.set rYoshi, 3 # required to be r3
.set rInput, 4
.set aInput, 0x80400D50
.set aRideYoshi, 0x80160640
## make sure Mario is not NULL
lwz rMario, -0x6748(r13)
mr. rMario, rMario
beqlr-
_C2_801604c4:
lwz rYoshi, 0x3f0(r31)
## make sure Yoshi is not NULL
lwz rYoshi, 0x3F0(rMario)
mr. rYoshi, rYoshi
beqlr-
## make sure any D-Pad key is pressed (not only Y)
lis rInput, 0x8040
lhz rInput, 0x0D50(rInput)
## check input
lis rInput, aInput@ha
lhz rInput, aInput@l(rInput)
### Y
rlwinm r0, rInput, 0, 0xFFF0
cmpwi r0, 0x0800
bne .L.end
### D-Pad
rlwinm. rInput, rInput, 1, 30-3, 30
beqlr-
## set to spray nozzle
lwz rFLUDD, 0x3E4(rMario)
mr. rFLUDD, rFLUDD
beq- .L1
li r0, 0
stb r0, 0x1C84(rFLUDD)
.L1:
beq .L.end
## color
lis r0, 0x6300
rlwnm r0, r0, rInput, 0x3
stb r0, 0xD0(rYoshi)
## ride state
li r0, 8
stb r0, 0(rYoshi)
## juice
lwz r0, 8(rYoshi)
stw r0, 0xC(rYoshi)
## goto ride Yoshi
lis r12, aRideYoshi@h
ori r12, r12, aRideYoshi@l
mtlr r12
blr
.L.end: