add RedCoinTimer
This commit is contained in:
parent
7f91012dba
commit
b847f0d4a5
3 changed files with 116 additions and 0 deletions
29
NTSC-J 1.0/RedCoinTimer.txt
Normal file
29
NTSC-J 1.0/RedCoinTimer.txt
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
$ Red Coin Timer (v0.1.0, 2022/10/22) [sup39]
|
||||||
|
041962F4 49661E0D
|
||||||
|
04206758 495F19C8
|
||||||
|
077F8100 000000C4
|
||||||
|
812300F4 3D408180
|
||||||
|
394A8000 818D97E8
|
||||||
|
816C005C 5529103E
|
||||||
|
7D6A492E 4A8EFC94
|
||||||
|
38610E90 4A83D105
|
||||||
|
3821FFE0 BF81000C
|
||||||
|
3D80817F 3BEC7FFC
|
||||||
|
818D97D0 83CC00F4
|
||||||
|
3BA0009C 3B800000
|
||||||
|
2C1E0000 41A10014
|
||||||
|
BB81000C 38210020
|
||||||
|
38610E90 4AA0E600
|
||||||
|
859F0004 7C1C6050
|
||||||
|
7D9C6378 1C0003E9
|
||||||
|
39600078 7D405B96
|
||||||
|
396003E8 7D2A5B96
|
||||||
|
1D6903E8 7D4B5050
|
||||||
|
3860020C 7FA4EB78
|
||||||
|
38A0000F 38C0FFFF
|
||||||
|
38E0FFFF 48000011
|
||||||
|
2532642E 25303364
|
||||||
|
00000000 7D0802A6
|
||||||
|
4CC63182 4BFF8085
|
||||||
|
3BDEFFFF 3BBD000F
|
||||||
|
4BFFFF88 00000000
|
6
src/RedCoinTimer.ld
Normal file
6
src/RedCoinTimer.ld
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
$$ = 0x817f8100;
|
||||||
|
$RCST.times = 0x817f8000;
|
||||||
|
|
||||||
|
$bl$.TCoinRed.taken.incFlag = 0x801962f4;
|
||||||
|
$b$.draw2D = 0x80206758;
|
||||||
|
drawText = 0x817f0238;
|
81
src/RedCoinTimer.s
Normal file
81
src/RedCoinTimer.s
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
.TCoinRed.taken.incFlag:
|
||||||
|
### r3 = smInstance
|
||||||
|
### r9 = red coin count
|
||||||
|
### r10 = ×
|
||||||
|
lwz r9, 0xF4(r3)
|
||||||
|
lis r10, $RCST.times@ha
|
||||||
|
la r10, $RCST.times@l(r10)
|
||||||
|
### r11 = global QF
|
||||||
|
lwz r12, gpMarDirector$r13(r13)
|
||||||
|
lwz r11, 0x5C(r12)
|
||||||
|
## store time
|
||||||
|
rlwinm r9, r9, 2, 0, 31
|
||||||
|
stwx r11, r10, r9
|
||||||
|
## DONE
|
||||||
|
b TFlagManager.incFlag
|
||||||
|
|
||||||
|
.set rmw, 28
|
||||||
|
.set rmwOff, 0xC
|
||||||
|
.set rmwAdd, 0x20
|
||||||
|
.set x, 524
|
||||||
|
.set y, 156
|
||||||
|
.set fontSize, 15
|
||||||
|
.draw2D:
|
||||||
|
## setup
|
||||||
|
addi r3, r1, 0xE90
|
||||||
|
bl J2DGrafContext.setup2D
|
||||||
|
## pre draw
|
||||||
|
addi r1, r1, -rmwAdd
|
||||||
|
stmw rmw, rmwOff(r1)
|
||||||
|
.set rTPtr, r31
|
||||||
|
.set rCnt, r30
|
||||||
|
.set rY, r29
|
||||||
|
.set rT0, r28
|
||||||
|
lis r12, $RCST.times-4@ha
|
||||||
|
la rTPtr, $RCST.times-4@l(r12)
|
||||||
|
lwz r12, TFlagManager.smInstance$r13(r13)
|
||||||
|
lwz rCnt, 0xF4(r12)
|
||||||
|
li rY, y
|
||||||
|
li rT0, 0
|
||||||
|
.draw2D.loop:
|
||||||
|
cmpwi rCnt, 0
|
||||||
|
bgt+ .draw2D.loop.body
|
||||||
|
## post draw
|
||||||
|
lmw rmw, rmwOff(r1)
|
||||||
|
addi r1, r1, rmwAdd
|
||||||
|
## orig
|
||||||
|
addi r3, r1, 0xE90
|
||||||
|
b 4+$b$.draw2D
|
||||||
|
.draw2D.loop.body:
|
||||||
|
### QF -> s
|
||||||
|
lwzu r12, 4(rTPtr)
|
||||||
|
sub r0, r12, rT0
|
||||||
|
mr rT0, r12
|
||||||
|
#### r0 = dQF*1001
|
||||||
|
mulli r0, r0, 1001
|
||||||
|
#### r10 = dQF*1001/120 = ms
|
||||||
|
li r11, 120
|
||||||
|
divwu r10, r0, r11
|
||||||
|
#### r9 = ms/1000 = s
|
||||||
|
li r11, 1000
|
||||||
|
divwu r9, r10, r11
|
||||||
|
#### r10 = ms-s*1000 = ms%1000
|
||||||
|
mulli r11, r9, 1000
|
||||||
|
sub r10, r10, r11
|
||||||
|
### params
|
||||||
|
li r3, x
|
||||||
|
mr r4, rY
|
||||||
|
li r5, fontSize
|
||||||
|
li r6, -1
|
||||||
|
li r7, -1
|
||||||
|
bl .draw2D.fmt
|
||||||
|
.string "%2d.%03d"
|
||||||
|
.align 2
|
||||||
|
.draw2D.fmt:
|
||||||
|
mflr r8
|
||||||
|
crclr 6
|
||||||
|
bl drawText
|
||||||
|
## next
|
||||||
|
addi rCnt, rCnt, -1
|
||||||
|
addi rY, rY, fontSize
|
||||||
|
b .draw2D.loop
|
Loading…
Reference in a new issue