mirror of
https://github.com/n64decomp/mk64
synced 2026-08-18 13:12:55 -04:00
157127d1f1
* decomped some of code_8028DF00.s and main.c
161 lines
7.9 KiB
ArmAsm
161 lines
7.9 KiB
ArmAsm
glabel func_8028E438
|
|
/* 0F7A48 8028E438 24040001 */ li $a0, 1
|
|
/* 0F7A4C 8028E43C 3C078016 */ lui $a3, %hi(D_8015F894) # $a3, 0x8016
|
|
/* 0F7A50 8028E440 3C0E800E */ lui $t6, %hi(D_800DC5E8) # $t6, 0x800e
|
|
/* 0F7A54 8028E444 3C01800E */ lui $at, %hi(D_800DC5B0) # $at, 0x800e
|
|
/* 0F7A58 8028E448 8DCEC5E8 */ lw $t6, %lo(D_800DC5E8)($t6)
|
|
/* 0F7A5C 8028E44C 24E7F894 */ addiu $a3, %lo(D_8015F894) # addiu $a3, $a3, -0x76c
|
|
/* 0F7A60 8028E450 A424C5B0 */ sh $a0, %lo(D_800DC5B0)($at)
|
|
/* 0F7A64 8028E454 94E30000 */ lhu $v1, ($a3)
|
|
/* 0F7A68 8028E458 3C188016 */ lui $t8, %hi(D_8015F480) # $t8, 0x8016
|
|
/* 0F7A6C 8028E45C 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* 0F7A70 8028E460 2718F480 */ addiu $t8, %lo(D_8015F480) # addiu $t8, $t8, -0xb80
|
|
/* 0F7A74 8028E464 000E7980 */ sll $t7, $t6, 6
|
|
/* 0F7A78 8028E468 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0F7A7C 8028E46C 10600008 */ beqz $v1, .L8028E490
|
|
/* 0F7A80 8028E470 01F81021 */ addu $v0, $t7, $t8
|
|
/* 0F7A84 8028E474 24010001 */ li $at, 1
|
|
/* 0F7A88 8028E478 10610011 */ beq $v1, $at, .L8028E4C0
|
|
/* 0F7A8C 8028E47C 24010002 */ li $at, 2
|
|
/* 0F7A90 8028E480 5061007A */ beql $v1, $at, .L8028E66C
|
|
/* 0F7A94 8028E484 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0F7A98 8028E488 10000078 */ b .L8028E66C
|
|
/* 0F7A9C 8028E48C 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L8028E490:
|
|
/* 0F7AA0 8028E490 3C01800E */ lui $at, %hi(D_800DC5B8) # $at, 0x800e
|
|
/* 0F7AA4 8028E494 A420C5B8 */ sh $zero, %lo(D_800DC5B8)($at)
|
|
/* 0F7AA8 8028E498 A4E40000 */ sh $a0, ($a3)
|
|
/* 0F7AAC 8028E49C 3C19800E */ lui $t9, %hi(gPlayerCountSelection1) # $t9, 0x800e
|
|
/* 0F7AB0 8028E4A0 8F39C538 */ lw $t9, %lo(gPlayerCountSelection1)($t9)
|
|
/* 0F7AB4 8028E4A4 24010003 */ li $at, 3
|
|
/* 0F7AB8 8028E4A8 57210070 */ bnel $t9, $at, .L8028E66C
|
|
/* 0F7ABC 8028E4AC 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0F7AC0 8028E4B0 0C024973 */ jal func_800925CC
|
|
/* 0F7AC4 8028E4B4 00000000 */ nop
|
|
/* 0F7AC8 8028E4B8 1000006C */ b .L8028E66C
|
|
/* 0F7ACC 8028E4BC 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L8028E4C0:
|
|
/* 0F7AD0 8028E4C0 8444002C */ lh $a0, 0x2c($v0)
|
|
/* 0F7AD4 8028E4C4 28810140 */ slti $at, $a0, 0x140
|
|
/* 0F7AD8 8028E4C8 10200002 */ beqz $at, .L8028E4D4
|
|
/* 0F7ADC 8028E4CC 24880002 */ addiu $t0, $a0, 2
|
|
/* 0F7AE0 8028E4D0 A448002C */ sh $t0, 0x2c($v0)
|
|
.L8028E4D4:
|
|
/* 0F7AE4 8028E4D4 8446002E */ lh $a2, 0x2e($v0)
|
|
/* 0F7AE8 8028E4D8 28C100F0 */ slti $at, $a2, 0xf0
|
|
/* 0F7AEC 8028E4DC 10200002 */ beqz $at, .L8028E4E8
|
|
/* 0F7AF0 8028E4E0 24C90002 */ addiu $t1, $a2, 2
|
|
/* 0F7AF4 8028E4E4 A449002E */ sh $t1, 0x2e($v0)
|
|
.L8028E4E8:
|
|
/* 0F7AF8 8028E4E8 84450030 */ lh $a1, 0x30($v0)
|
|
/* 0F7AFC 8028E4EC 240F00F0 */ li $t7, 240
|
|
/* 0F7B00 8028E4F0 28A100A0 */ slti $at, $a1, 0xa0
|
|
/* 0F7B04 8028E4F4 10200003 */ beqz $at, .L8028E504
|
|
/* 0F7B08 8028E4F8 24AA0001 */ addiu $t2, $a1, 1
|
|
/* 0F7B0C 8028E4FC 10000005 */ b .L8028E514
|
|
/* 0F7B10 8028E500 A44A0030 */ sh $t2, 0x30($v0)
|
|
.L8028E504:
|
|
/* 0F7B14 8028E504 28A100A1 */ slti $at, $a1, 0xa1
|
|
/* 0F7B18 8028E508 14200002 */ bnez $at, .L8028E514
|
|
/* 0F7B1C 8028E50C 24ABFFFF */ addiu $t3, $a1, -1
|
|
/* 0F7B20 8028E510 A44B0030 */ sh $t3, 0x30($v0)
|
|
.L8028E514:
|
|
/* 0F7B24 8028E514 84430032 */ lh $v1, 0x32($v0)
|
|
/* 0F7B28 8028E518 24180140 */ li $t8, 320
|
|
/* 0F7B2C 8028E51C 28610078 */ slti $at, $v1, 0x78
|
|
/* 0F7B30 8028E520 10200003 */ beqz $at, .L8028E530
|
|
/* 0F7B34 8028E524 246C0001 */ addiu $t4, $v1, 1
|
|
/* 0F7B38 8028E528 10000005 */ b .L8028E540
|
|
/* 0F7B3C 8028E52C A44C0032 */ sh $t4, 0x32($v0)
|
|
.L8028E530:
|
|
/* 0F7B40 8028E530 28610079 */ slti $at, $v1, 0x79
|
|
/* 0F7B44 8028E534 14200002 */ bnez $at, .L8028E540
|
|
/* 0F7B48 8028E538 246DFFFF */ addiu $t5, $v1, -1
|
|
/* 0F7B4C 8028E53C A44D0032 */ sh $t5, 0x32($v0)
|
|
.L8028E540:
|
|
/* 0F7B50 8028E540 844E002E */ lh $t6, 0x2e($v0)
|
|
/* 0F7B54 8028E544 00001825 */ move $v1, $zero
|
|
/* 0F7B58 8028E548 24080002 */ li $t0, 2
|
|
/* 0F7B5C 8028E54C 29C100F0 */ slti $at, $t6, 0xf0
|
|
/* 0F7B60 8028E550 54200004 */ bnel $at, $zero, .L8028E564
|
|
/* 0F7B64 8028E554 8444002C */ lh $a0, 0x2c($v0)
|
|
/* 0F7B68 8028E558 24030001 */ li $v1, 1
|
|
/* 0F7B6C 8028E55C A44F002E */ sh $t7, 0x2e($v0)
|
|
/* 0F7B70 8028E560 8444002C */ lh $a0, 0x2c($v0)
|
|
.L8028E564:
|
|
/* 0F7B74 8028E564 28810140 */ slti $at, $a0, 0x140
|
|
/* 0F7B78 8028E568 54200005 */ bnel $at, $zero, .L8028E580
|
|
/* 0F7B7C 8028E56C 84590032 */ lh $t9, 0x32($v0)
|
|
/* 0F7B80 8028E570 A458002C */ sh $t8, 0x2c($v0)
|
|
/* 0F7B84 8028E574 8444002C */ lh $a0, 0x2c($v0)
|
|
/* 0F7B88 8028E578 24630001 */ addiu $v1, $v1, 1
|
|
/* 0F7B8C 8028E57C 84590032 */ lh $t9, 0x32($v0)
|
|
.L8028E580:
|
|
/* 0F7B90 8028E580 24010078 */ li $at, 120
|
|
/* 0F7B94 8028E584 8446002E */ lh $a2, 0x2e($v0)
|
|
/* 0F7B98 8028E588 17210002 */ bne $t9, $at, .L8028E594
|
|
/* 0F7B9C 8028E58C 84450030 */ lh $a1, 0x30($v0)
|
|
/* 0F7BA0 8028E590 24630001 */ addiu $v1, $v1, 1
|
|
.L8028E594:
|
|
/* 0F7BA4 8028E594 44842000 */ mtc1 $a0, $f4
|
|
/* 0F7BA8 8028E598 240100A0 */ li $at, 160
|
|
/* 0F7BAC 8028E59C 14A10002 */ bne $a1, $at, .L8028E5A8
|
|
/* 0F7BB0 8028E5A0 468021A0 */ cvt.s.w $f6, $f4
|
|
/* 0F7BB4 8028E5A4 24630001 */ addiu $v1, $v1, 1
|
|
.L8028E5A8:
|
|
/* 0F7BB8 8028E5A8 44864000 */ mtc1 $a2, $f8
|
|
/* 0F7BBC 8028E5AC 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015
|
|
/* 0F7BC0 8028E5B0 468042A0 */ cvt.s.w $f10, $f8
|
|
/* 0F7BC4 8028E5B4 460A3403 */ div.s $f16, $f6, $f10
|
|
/* 0F7BC8 8028E5B8 E4300148 */ swc1 $f16, %lo(D_80150148)($at)
|
|
/* 0F7BCC 8028E5BC 24010004 */ li $at, 4
|
|
/* 0F7BD0 8028E5C0 5461002A */ bnel $v1, $at, .L8028E66C
|
|
/* 0F7BD4 8028E5C4 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0F7BD8 8028E5C8 A4E80000 */ sh $t0, ($a3)
|
|
/* 0F7BDC 8028E5CC 3C01800E */ lui $at, %hi(D_800DC52C) # $at, 0x800e
|
|
/* 0F7BE0 8028E5D0 3C03800E */ lui $v1, %hi(D_800DC5EC) # $v1, 0x800e
|
|
/* 0F7BE4 8028E5D4 AC20C52C */ sw $zero, %lo(D_800DC52C)($at)
|
|
/* 0F7BE8 8028E5D8 2463C5EC */ addiu $v1, %lo(D_800DC5EC) # addiu $v1, $v1, -0x3a14
|
|
/* 0F7BEC 8028E5DC 8C6A0000 */ lw $t2, ($v1)
|
|
/* 0F7BF0 8028E5E0 8449002C */ lh $t1, 0x2c($v0)
|
|
/* 0F7BF4 8028E5E4 3C04800E */ lui $a0, %hi(gModeSelection) # $a0, 0x800e
|
|
/* 0F7BF8 8028E5E8 24010003 */ li $at, 3
|
|
/* 0F7BFC 8028E5EC A549002C */ sh $t1, 0x2c($t2)
|
|
/* 0F7C00 8028E5F0 8C6C0000 */ lw $t4, ($v1)
|
|
/* 0F7C04 8028E5F4 844B002E */ lh $t3, 0x2e($v0)
|
|
/* 0F7C08 8028E5F8 A58B002E */ sh $t3, 0x2e($t4)
|
|
/* 0F7C0C 8028E5FC 8C6E0000 */ lw $t6, ($v1)
|
|
/* 0F7C10 8028E600 844D0030 */ lh $t5, 0x30($v0)
|
|
/* 0F7C14 8028E604 A5CD0030 */ sh $t5, 0x30($t6)
|
|
/* 0F7C18 8028E608 8C780000 */ lw $t8, ($v1)
|
|
/* 0F7C1C 8028E60C 844F0032 */ lh $t7, 0x32($v0)
|
|
/* 0F7C20 8028E610 A70F0032 */ sh $t7, 0x32($t8)
|
|
/* 0F7C24 8028E614 8C84C53C */ lw $a0, %lo(gModeSelection)($a0)
|
|
/* 0F7C28 8028E618 54810006 */ bnel $a0, $at, .L8028E634
|
|
/* 0F7C2C 8028E61C 24010002 */ li $at, 2
|
|
/* 0F7C30 8028E620 0C024981 */ jal func_80092604
|
|
/* 0F7C34 8028E624 00000000 */ nop
|
|
/* 0F7C38 8028E628 10000010 */ b .L8028E66C
|
|
/* 0F7C3C 8028E62C 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 0F7C40 8028E630 24010002 */ li $at, 2
|
|
.L8028E634:
|
|
/* 0F7C44 8028E634 14810007 */ bne $a0, $at, .L8028E654
|
|
/* 0F7C48 8028E638 00000000 */ nop
|
|
/* 0F7C4C 8028E63C 0C024981 */ jal func_80092604
|
|
/* 0F7C50 8028E640 00000000 */ nop
|
|
/* 0F7C54 8028E644 0C00677D */ jal func_80019DF4
|
|
/* 0F7C58 8028E648 00000000 */ nop
|
|
/* 0F7C5C 8028E64C 10000007 */ b .L8028E66C
|
|
/* 0F7C60 8028E650 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L8028E654:
|
|
/* 0F7C64 8028E654 0C024959 */ jal func_80092564
|
|
/* 0F7C68 8028E658 00000000 */ nop
|
|
/* 0F7C6C 8028E65C 24190007 */ li $t9, 7
|
|
/* 0F7C70 8028E660 3C01800E */ lui $at, %hi(D_800DC510) # $at, 0x800e
|
|
/* 0F7C74 8028E664 AC39C510 */ sw $t9, %lo(D_800DC510)($at)
|
|
/* 0F7C78 8028E668 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L8028E66C:
|
|
/* 0F7C7C 8028E66C 27BD0018 */ addiu $sp, $sp, 0x18
|
|
/* 0F7C80 8028E670 03E00008 */ jr $ra
|
|
/* 0F7C84 8028E674 00000000 */ nop
|