mirror of
https://github.com/n64decomp/mk64
synced 2026-07-01 02:50:09 -04:00
7df6d01ef3
* Add player labels, rename function * Relabel controller vars to improve readability
124 lines
6.5 KiB
ArmAsm
124 lines
6.5 KiB
ArmAsm
glabel func_80298AC0
|
|
/* 1020D0 80298AC0 27BDFF90 */ addiu $sp, $sp, -0x70
|
|
/* 1020D4 80298AC4 3C030601 */ lui $v1, %hi(D_06013F78) # $v1, 0x601
|
|
/* 1020D8 80298AC8 24633F78 */ addiu $v1, %lo(D_06013F78) # addiu $v1, $v1, 0x3f78
|
|
/* 1020DC 80298ACC 00037602 */ srl $t6, $v1, 0x18
|
|
/* 1020E0 80298AD0 000E7880 */ sll $t7, $t6, 2
|
|
/* 1020E4 80298AD4 3C188015 */ lui $t8, %hi(gSegmentTable)
|
|
/* 1020E8 80298AD8 030FC021 */ addu $t8, $t8, $t7
|
|
/* 1020EC 80298ADC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
|
|
/* 1020F0 80298AE0 8F180258 */ lw $t8, %lo(gSegmentTable)($t8)
|
|
/* 1020F4 80298AE4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
|
/* 1020F8 80298AE8 0061C824 */ and $t9, $v1, $at
|
|
/* 1020FC 80298AEC AFB00034 */ sw $s0, 0x34($sp)
|
|
/* 102100 80298AF0 3C018000 */ lui $at, 0x8000
|
|
/* 102104 80298AF4 03198021 */ addu $s0, $t8, $t9
|
|
/* 102108 80298AF8 AFBF004C */ sw $ra, 0x4c($sp)
|
|
/* 10210C 80298AFC AFB50048 */ sw $s5, 0x48($sp)
|
|
/* 102110 80298B00 AFB40044 */ sw $s4, 0x44($sp)
|
|
/* 102114 80298B04 AFB30040 */ sw $s3, 0x40($sp)
|
|
/* 102118 80298B08 AFB2003C */ sw $s2, 0x3c($sp)
|
|
/* 10211C 80298B0C AFB10038 */ sw $s1, 0x38($sp)
|
|
/* 102120 80298B10 F7B80028 */ sdc1 $f24, 0x28($sp)
|
|
/* 102124 80298B14 F7B60020 */ sdc1 $f22, 0x20($sp)
|
|
/* 102128 80298B18 F7B40018 */ sdc1 $f20, 0x18($sp)
|
|
/* 10212C 80298B1C 02018021 */ addu $s0, $s0, $at
|
|
/* 102130 80298B20 86020000 */ lh $v0, ($s0)
|
|
/* 102134 80298B24 24118000 */ li $s1, -32768
|
|
/* 102138 80298B28 0080A825 */ move $s5, $a0
|
|
/* 10213C 80298B2C 1222004D */ beq $s1, $v0, .L80298C64
|
|
/* 102140 80298B30 3C01802C */ lui $at, %hi(D_802B964C) # $at, 0x802c
|
|
/* 102144 80298B34 C438964C */ lwc1 $f24, %lo(D_802B964C)($at)
|
|
/* 102148 80298B38 3C014220 */ li $at, 0x42200000 # 40.000000
|
|
/* 10214C 80298B3C 4481B000 */ mtc1 $at, $f22
|
|
/* 102150 80298B40 3C0140A0 */ li $at, 0x40A00000 # 5.000000
|
|
/* 102154 80298B44 3C128016 */ lui $s2, %hi(gCourseDirection) # $s2, 0x8016
|
|
/* 102158 80298B48 4481A000 */ mtc1 $at, $f20
|
|
/* 10215C 80298B4C 2652F784 */ addiu $s2, %lo(gCourseDirection) # addiu $s2, $s2, -0x87c
|
|
/* 102160 80298B50 24140001 */ li $s4, 1
|
|
/* 102164 80298B54 27B30064 */ addiu $s3, $sp, 0x64
|
|
/* 102168 80298B58 44822000 */ mtc1 $v0, $f4
|
|
.L80298B5C:
|
|
/* 10216C 80298B5C C6480000 */ lwc1 $f8, ($s2)
|
|
/* 102170 80298B60 4406A000 */ mfc1 $a2, $f20
|
|
/* 102174 80298B64 468021A0 */ cvt.s.w $f6, $f4
|
|
/* 102178 80298B68 4407B000 */ mfc1 $a3, $f22
|
|
/* 10217C 80298B6C 02A02025 */ move $a0, $s5
|
|
/* 102180 80298B70 02602825 */ move $a1, $s3
|
|
/* 102184 80298B74 46083282 */ mul.s $f10, $f6, $f8
|
|
/* 102188 80298B78 E7AA0064 */ swc1 $f10, 0x64($sp)
|
|
/* 10218C 80298B7C 86080002 */ lh $t0, 2($s0)
|
|
/* 102190 80298B80 44888000 */ mtc1 $t0, $f16
|
|
/* 102194 80298B84 00000000 */ nop
|
|
/* 102198 80298B88 468084A0 */ cvt.s.w $f18, $f16
|
|
/* 10219C 80298B8C E7B20068 */ swc1 $f18, 0x68($sp)
|
|
/* 1021A0 80298B90 86090004 */ lh $t1, 4($s0)
|
|
/* 1021A4 80298B94 E7B80010 */ swc1 $f24, 0x10($sp)
|
|
/* 1021A8 80298B98 44892000 */ mtc1 $t1, $f4
|
|
/* 1021AC 80298B9C 00000000 */ nop
|
|
/* 1021B0 80298BA0 468021A0 */ cvt.s.w $f6, $f4
|
|
/* 1021B4 80298BA4 0C0A7BAE */ jal func_8029EEB8
|
|
/* 1021B8 80298BA8 E7A6006C */ swc1 $f6, 0x6c($sp)
|
|
/* 1021BC 80298BAC 5454002A */ bnel $v0, $s4, .L80298C58
|
|
/* 1021C0 80298BB0 8602000A */ lh $v0, 0xa($s0)
|
|
/* 1021C4 80298BB4 8EAA00BC */ lw $t2, 0xbc($s5)
|
|
/* 1021C8 80298BB8 26A40014 */ addiu $a0, $s5, 0x14
|
|
/* 1021CC 80298BBC 26A50034 */ addiu $a1, $s5, 0x34
|
|
/* 1021D0 80298BC0 314B0200 */ andi $t3, $t2, 0x200
|
|
/* 1021D4 80298BC4 11600013 */ beqz $t3, .L80298C14
|
|
/* 1021D8 80298BC8 3C061901 */ lui $a2, (0x19018010 >> 16) # lui $a2, 0x1901
|
|
/* 1021DC 80298BCC 0C03262E */ jal func_800C98B8
|
|
/* 1021E0 80298BD0 34C68010 */ ori $a2, (0x19018010 & 0xFFFF) # ori $a2, $a2, 0x8010
|
|
/* 1021E4 80298BD4 3C0C800E */ lui $t4, %hi(gPlayerOne) # $t4, 0x800e
|
|
/* 1021E8 80298BD8 8D8CC4DC */ lw $t4, %lo(gPlayerOne)($t4)
|
|
/* 1021EC 80298BDC 24010DD8 */ li $at, 3544
|
|
/* 1021F0 80298BE0 96A50254 */ lhu $a1, 0x254($s5)
|
|
/* 1021F4 80298BE4 02AC2023 */ subu $a0, $s5, $t4
|
|
/* 1021F8 80298BE8 0081001A */ div $zero, $a0, $at
|
|
/* 1021FC 80298BEC 3C012900 */ lui $at, (0x2900800D >> 16) # lui $at, 0x2900
|
|
/* 102200 80298BF0 3421800D */ ori $at, (0x2900800D & 0xFFFF) # ori $at, $at, 0x800d
|
|
/* 102204 80298BF4 00006812 */ mflo $t5
|
|
/* 102208 80298BF8 00057900 */ sll $t7, $a1, 4
|
|
/* 10220C 80298BFC 01E12821 */ addu $a1, $t7, $at
|
|
/* 102210 80298C00 0C03243D */ jal func_800C90F4
|
|
/* 102214 80298C04 31A400FF */ andi $a0, $t5, 0xff
|
|
/* 102218 80298C08 86180006 */ lh $t8, 6($s0)
|
|
/* 10221C 80298C0C 37190400 */ ori $t9, $t8, 0x400
|
|
/* 102220 80298C10 A6190006 */ sh $t9, 6($s0)
|
|
.L80298C14:
|
|
/* 102224 80298C14 96A80000 */ lhu $t0, ($s5)
|
|
/* 102228 80298C18 3C0A800E */ lui $t2, %hi(gPlayerOne) # $t2, 0x800e
|
|
/* 10222C 80298C1C 31090100 */ andi $t1, $t0, 0x100
|
|
/* 102230 80298C20 55200011 */ bnel $t1, $zero, .L80298C68
|
|
/* 102234 80298C24 8FBF004C */ lw $ra, 0x4c($sp)
|
|
/* 102238 80298C28 8D4AC4DC */ lw $t2, %lo(gPlayerOne)($t2)
|
|
/* 10223C 80298C2C 24010DD8 */ li $at, 3544
|
|
/* 102240 80298C30 3C051900 */ lui $a1, (0x19007018 >> 16) # lui $a1, 0x1900
|
|
/* 102244 80298C34 02AA2023 */ subu $a0, $s5, $t2
|
|
/* 102248 80298C38 0081001A */ div $zero, $a0, $at
|
|
/* 10224C 80298C3C 00005812 */ mflo $t3
|
|
/* 102250 80298C40 316400FF */ andi $a0, $t3, 0xff
|
|
/* 102254 80298C44 0C032418 */ jal func_800C9060
|
|
/* 102258 80298C48 34A57018 */ ori $a1, (0x19007018 & 0xFFFF) # ori $a1, $a1, 0x7018
|
|
/* 10225C 80298C4C 10000006 */ b .L80298C68
|
|
/* 102260 80298C50 8FBF004C */ lw $ra, 0x4c($sp)
|
|
/* 102264 80298C54 8602000A */ lh $v0, 0xa($s0)
|
|
.L80298C58:
|
|
/* 102268 80298C58 2610000A */ addiu $s0, $s0, 0xa
|
|
/* 10226C 80298C5C 5622FFBF */ bnel $s1, $v0, .L80298B5C
|
|
/* 102270 80298C60 44822000 */ mtc1 $v0, $f4
|
|
.L80298C64:
|
|
/* 102274 80298C64 8FBF004C */ lw $ra, 0x4c($sp)
|
|
.L80298C68:
|
|
/* 102278 80298C68 D7B40018 */ ldc1 $f20, 0x18($sp)
|
|
/* 10227C 80298C6C D7B60020 */ ldc1 $f22, 0x20($sp)
|
|
/* 102280 80298C70 D7B80028 */ ldc1 $f24, 0x28($sp)
|
|
/* 102284 80298C74 8FB00034 */ lw $s0, 0x34($sp)
|
|
/* 102288 80298C78 8FB10038 */ lw $s1, 0x38($sp)
|
|
/* 10228C 80298C7C 8FB2003C */ lw $s2, 0x3c($sp)
|
|
/* 102290 80298C80 8FB30040 */ lw $s3, 0x40($sp)
|
|
/* 102294 80298C84 8FB40044 */ lw $s4, 0x44($sp)
|
|
/* 102298 80298C88 8FB50048 */ lw $s5, 0x48($sp)
|
|
/* 10229C 80298C8C 03E00008 */ jr $ra
|
|
/* 1022A0 80298C90 27BD0070 */ addiu $sp, $sp, 0x70
|