mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-07-03 05:02:59 -04:00
f959f03184
* Matched some memory.c * And more
185 lines
9.4 KiB
ArmAsm
185 lines
9.4 KiB
ArmAsm
glabel func_800563DC
|
|
/* 056FDC 800563DC 0004C8C0 */ sll $t9, $a0, 3
|
|
/* 056FE0 800563E0 0324C823 */ subu $t9, $t9, $a0
|
|
/* 056FE4 800563E4 3C088016 */ lui $t0, %hi(D_80165C18) # $t0, 0x8016
|
|
/* 056FE8 800563E8 25085C18 */ addiu $t0, %lo(D_80165C18) # addiu $t0, $t0, 0x5c18
|
|
/* 056FEC 800563EC 0019C940 */ sll $t9, $t9, 5
|
|
/* 056FF0 800563F0 03281021 */ addu $v0, $t9, $t0
|
|
/* 056FF4 800563F4 C4440008 */ lwc1 $f4, 8($v0)
|
|
/* 056FF8 800563F8 3C013FF0 */ li $at, 0x3FF00000 # 1.875000
|
|
/* 056FFC 800563FC 44814800 */ mtc1 $at, $f9
|
|
/* 057000 80056400 44804000 */ mtc1 $zero, $f8
|
|
/* 057004 80056404 460021A1 */ cvt.d.s $f6, $f4
|
|
/* 057008 80056408 27BDFFC0 */ addiu $sp, $sp, -0x40
|
|
/* 05700C 8005640C 46283280 */ add.d $f10, $f6, $f8
|
|
/* 057010 80056410 AFB00028 */ sw $s0, 0x28($sp)
|
|
/* 057014 80056414 3C108016 */ lui $s0, %hi(D_801655CC) # $s0, 0x8016
|
|
/* 057018 80056418 8E1055CC */ lw $s0, %lo(D_801655CC)($s0)
|
|
/* 05701C 8005641C 00057080 */ sll $t6, $a1, 2
|
|
/* 057020 80056420 3C0F800E */ lui $t7, %hi(camera1) # $t7, 0x800e
|
|
/* 057024 80056424 8DEFDB40 */ lw $t7, %lo(camera1)($t7)
|
|
/* 057028 80056428 AFB30034 */ sw $s3, 0x34($sp)
|
|
/* 05702C 8005642C 01C57023 */ subu $t6, $t6, $a1
|
|
/* 057030 80056430 46205420 */ cvt.s.d $f16, $f10
|
|
/* 057034 80056434 3C138018 */ lui $s3, %hi(D_80183E40) # $s3, 0x8018
|
|
/* 057038 80056438 AFB1002C */ sw $s1, 0x2c($sp)
|
|
/* 05703C 8005643C 000E70C0 */ sll $t6, $t6, 3
|
|
/* 057040 80056440 C44C0004 */ lwc1 $f12, 4($v0)
|
|
/* 057044 80056444 C44E000C */ lwc1 $f14, 0xc($v0)
|
|
/* 057048 80056448 3C118018 */ lui $s1, %hi(D_80183E80) # $s1, 0x8018
|
|
/* 05704C 8005644C 26733E40 */ addiu $s3, %lo(D_80183E40) # addiu $s3, $s3, 0x3e40
|
|
/* 057050 80056450 AFB20030 */ sw $s2, 0x30($sp)
|
|
/* 057054 80056454 01C57023 */ subu $t6, $t6, $a1
|
|
/* 057058 80056458 00C09025 */ move $s2, $a2
|
|
/* 05705C 8005645C 26313E80 */ addiu $s1, %lo(D_80183E80) # addiu $s1, $s1, 0x3e80
|
|
/* 057060 80056460 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* 057064 80056464 000E70C0 */ sll $t6, $t6, 3
|
|
/* 057068 80056468 32180003 */ andi $t8, $s0, 3
|
|
/* 05706C 8005646C AFB40038 */ sw $s4, 0x38($sp)
|
|
/* 057070 80056470 03008025 */ move $s0, $t8
|
|
/* 057074 80056474 E6700004 */ swc1 $f16, 4($s3)
|
|
/* 057078 80056478 A6200000 */ sh $zero, ($s1)
|
|
/* 05707C 8005647C 01CF3021 */ addu $a2, $t6, $t7
|
|
/* 057080 80056480 E66C0000 */ swc1 $f12, ($s3)
|
|
/* 057084 80056484 0C01062B */ jal func_800418AC
|
|
/* 057088 80056488 E66E0008 */ swc1 $f14, 8($s3)
|
|
/* 05708C 8005648C 34098000 */ li $t1, 32768
|
|
/* 057090 80056490 3C063E4C */ lui $a2, (0x3E4CCCCD >> 16) # lui $a2, 0x3e4c
|
|
/* 057094 80056494 A6220002 */ sh $v0, 2($s1)
|
|
/* 057098 80056498 A6290004 */ sh $t1, 4($s1)
|
|
/* 05709C 8005649C 34C6CCCD */ ori $a2, (0x3E4CCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
|
|
/* 0570A0 800564A0 02602025 */ move $a0, $s3
|
|
/* 0570A4 800564A4 0C010B80 */ jal func_80042E00
|
|
/* 0570A8 800564A8 02202825 */ move $a1, $s1
|
|
/* 0570AC 800564AC 3C148015 */ lui $s4, %hi(gDisplayListHead) # $s4, 0x8015
|
|
/* 0570B0 800564B0 26940298 */ addiu $s4, %lo(gDisplayListHead) # addiu $s4, $s4, 0x298
|
|
/* 0570B4 800564B4 8E820000 */ lw $v0, ($s4)
|
|
/* 0570B8 800564B8 3C0C0D00 */ lui $t4, %hi(D_0D007E98) # $t4, 0xd00
|
|
/* 0570BC 800564BC 258C7E98 */ addiu $t4, %lo(D_0D007E98) # addiu $t4, $t4, 0x7e98
|
|
/* 0570C0 800564C0 244A0008 */ addiu $t2, $v0, 8
|
|
/* 0570C4 800564C4 AE8A0000 */ sw $t2, ($s4)
|
|
/* 0570C8 800564C8 3C0B0600 */ lui $t3, 0x600
|
|
/* 0570CC 800564CC 02402025 */ move $a0, $s2
|
|
/* 0570D0 800564D0 AC4B0000 */ sw $t3, ($v0)
|
|
/* 0570D4 800564D4 0C012CC4 */ jal func_8004B310
|
|
/* 0570D8 800564D8 AC4C0004 */ sw $t4, 4($v0)
|
|
/* 0570DC 800564DC 3C0E0D03 */ lui $t6, %hi(D_0D029858) # $t6, 0xd03
|
|
/* 0570E0 800564E0 25CE9858 */ addiu $t6, %lo(D_0D029858) # addiu $t6, $t6, -0x67a8
|
|
/* 0570E4 800564E4 3C040D03 */ lui $a0, %hi(D_0D02A858) # $a0, 0xd03
|
|
/* 0570E8 800564E8 00106A80 */ sll $t5, $s0, 0xa
|
|
/* 0570EC 800564EC 3C060D00 */ lui $a2, %hi(D_0D005AE0) # $a2, 0xd00
|
|
/* 0570F0 800564F0 240F0020 */ li $t7, 32
|
|
/* 0570F4 800564F4 24180020 */ li $t8, 32
|
|
/* 0570F8 800564F8 24190020 */ li $t9, 32
|
|
/* 0570FC 800564FC AFB90018 */ sw $t9, 0x18($sp)
|
|
/* 057100 80056500 AFB80014 */ sw $t8, 0x14($sp)
|
|
/* 057104 80056504 AFAF0010 */ sw $t7, 0x10($sp)
|
|
/* 057108 80056508 24C65AE0 */ addiu $a2, %lo(D_0D005AE0) # addiu $a2, $a2, 0x5ae0
|
|
/* 05710C 8005650C 01AE2821 */ addu $a1, $t5, $t6
|
|
/* 057110 80056510 2484A858 */ addiu $a0, %lo(D_0D02A858) # addiu $a0, $a0, -0x57a8
|
|
/* 057114 80056514 0C011C9C */ jal func_80047270
|
|
/* 057118 80056518 24070020 */ li $a3, 32
|
|
/* 05711C 8005651C 8E820000 */ lw $v0, ($s4)
|
|
/* 057120 80056520 3C108019 */ lui $s0, %hi(D_8018D400) # $s0, 0x8019
|
|
/* 057124 80056524 8E10D400 */ lw $s0, %lo(D_8018D400)($s0)
|
|
/* 057128 80056528 3C0A0D00 */ lui $t2, %hi(D_0D007B00) # $t2, 0xd00
|
|
/* 05712C 8005652C 24480008 */ addiu $t0, $v0, 8
|
|
/* 057130 80056530 AE880000 */ sw $t0, ($s4)
|
|
/* 057134 80056534 254A7B00 */ addiu $t2, %lo(D_0D007B00) # addiu $t2, $t2, 0x7b00
|
|
/* 057138 80056538 3C090600 */ lui $t1, 0x600
|
|
/* 05713C 8005653C 00002025 */ move $a0, $zero
|
|
/* 057140 80056540 00002825 */ move $a1, $zero
|
|
/* 057144 80056544 00003025 */ move $a2, $zero
|
|
/* 057148 80056548 02403825 */ move $a3, $s2
|
|
/* 05714C 8005654C AC490000 */ sw $t1, ($v0)
|
|
/* 057150 80056550 0C012D05 */ jal func_8004B414
|
|
/* 057154 80056554 AC4A0004 */ sw $t2, 4($v0)
|
|
/* 057158 80056558 3C014010 */ li $at, 0x40100000 # 2.250000
|
|
/* 05715C 8005655C 44813800 */ mtc1 $at, $f7
|
|
/* 057160 80056560 24010003 */ li $at, 3
|
|
/* 057164 80056564 0201001A */ div $zero, $s0, $at
|
|
/* 057168 80056568 C6720004 */ lwc1 $f18, 4($s3)
|
|
/* 05716C 8005656C 44803000 */ mtc1 $zero, $f6
|
|
/* 057170 80056570 00002010 */ mfhi $a0
|
|
/* 057174 80056574 46009121 */ cvt.d.s $f4, $f18
|
|
/* 057178 80056578 A6200004 */ sh $zero, 4($s1)
|
|
/* 05717C 8005657C 46262200 */ add.d $f8, $f4, $f6
|
|
/* 057180 80056580 02403025 */ move $a2, $s2
|
|
/* 057184 80056584 462042A0 */ cvt.s.d $f10, $f8
|
|
/* 057188 80056588 E66A0004 */ swc1 $f10, 4($s3)
|
|
/* 05718C 8005658C 06010004 */ bgez $s0, .L800565A0
|
|
/* 057190 80056590 32050003 */ andi $a1, $s0, 3
|
|
/* 057194 80056594 10A00002 */ beqz $a1, .L800565A0
|
|
/* 057198 80056598 00000000 */ nop
|
|
/* 05719C 8005659C 24A5FFFC */ addiu $a1, $a1, -4
|
|
.L800565A0:
|
|
/* 0571A0 800565A0 0C0158B9 */ jal func_800562E4
|
|
/* 0571A4 800565A4 00000000 */ nop
|
|
/* 0571A8 800565A8 26020001 */ addiu $v0, $s0, 1
|
|
/* 0571AC 800565AC 24130003 */ li $s3, 3
|
|
/* 0571B0 800565B0 0053001A */ div $zero, $v0, $s3
|
|
/* 0571B4 800565B4 240B6000 */ li $t3, 24576
|
|
/* 0571B8 800565B8 00002010 */ mfhi $a0
|
|
/* 0571BC 800565BC A62B0004 */ sh $t3, 4($s1)
|
|
/* 0571C0 800565C0 16600002 */ bnez $s3, .L800565CC
|
|
/* 0571C4 800565C4 00000000 */ nop
|
|
/* 0571C8 800565C8 0007000D */ break 7
|
|
.L800565CC:
|
|
/* 0571CC 800565CC 2401FFFF */ li $at, -1
|
|
/* 0571D0 800565D0 16610004 */ bne $s3, $at, .L800565E4
|
|
/* 0571D4 800565D4 3C018000 */ lui $at, 0x8000
|
|
/* 0571D8 800565D8 14410002 */ bne $v0, $at, .L800565E4
|
|
/* 0571DC 800565DC 00000000 */ nop
|
|
/* 0571E0 800565E0 0006000D */ break 6
|
|
.L800565E4:
|
|
/* 0571E4 800565E4 02403025 */ move $a2, $s2
|
|
/* 0571E8 800565E8 04410004 */ bgez $v0, .L800565FC
|
|
/* 0571EC 800565EC 30450003 */ andi $a1, $v0, 3
|
|
/* 0571F0 800565F0 10A00002 */ beqz $a1, .L800565FC
|
|
/* 0571F4 800565F4 00000000 */ nop
|
|
/* 0571F8 800565F8 24A5FFFC */ addiu $a1, $a1, -4
|
|
.L800565FC:
|
|
/* 0571FC 800565FC 0C0158B9 */ jal func_800562E4
|
|
/* 057200 80056600 00000000 */ nop
|
|
/* 057204 80056604 26020002 */ addiu $v0, $s0, 2
|
|
/* 057208 80056608 0053001A */ div $zero, $v0, $s3
|
|
/* 05720C 8005660C 340CA000 */ li $t4, 40960
|
|
/* 057210 80056610 00002010 */ mfhi $a0
|
|
/* 057214 80056614 A62C0004 */ sh $t4, 4($s1)
|
|
/* 057218 80056618 16600002 */ bnez $s3, .L80056624
|
|
/* 05721C 8005661C 00000000 */ nop
|
|
/* 057220 80056620 0007000D */ break 7
|
|
.L80056624:
|
|
/* 057224 80056624 2401FFFF */ li $at, -1
|
|
/* 057228 80056628 16610004 */ bne $s3, $at, .L8005663C
|
|
/* 05722C 8005662C 3C018000 */ lui $at, 0x8000
|
|
/* 057230 80056630 14410002 */ bne $v0, $at, .L8005663C
|
|
/* 057234 80056634 00000000 */ nop
|
|
/* 057238 80056638 0006000D */ break 6
|
|
.L8005663C:
|
|
/* 05723C 8005663C 02403025 */ move $a2, $s2
|
|
/* 057240 80056640 04410004 */ bgez $v0, .L80056654
|
|
/* 057244 80056644 30450003 */ andi $a1, $v0, 3
|
|
/* 057248 80056648 10A00002 */ beqz $a1, .L80056654
|
|
/* 05724C 8005664C 00000000 */ nop
|
|
/* 057250 80056650 24A5FFFC */ addiu $a1, $a1, -4
|
|
.L80056654:
|
|
/* 057254 80056654 0C0158B9 */ jal func_800562E4
|
|
/* 057258 80056658 00000000 */ nop
|
|
/* 05725C 8005665C 8E820000 */ lw $v0, ($s4)
|
|
/* 057260 80056660 3C0F0001 */ lui $t7, (0x00010001 >> 16) # lui $t7, 1
|
|
/* 057264 80056664 35EF0001 */ ori $t7, (0x00010001 & 0xFFFF) # ori $t7, $t7, 1
|
|
/* 057268 80056668 244D0008 */ addiu $t5, $v0, 8
|
|
/* 05726C 8005666C AE8D0000 */ sw $t5, ($s4)
|
|
/* 057270 80056670 3C0EBB00 */ lui $t6, 0xbb00
|
|
/* 057274 80056674 AC4E0000 */ sw $t6, ($v0)
|
|
/* 057278 80056678 AC4F0004 */ sw $t7, 4($v0)
|
|
/* 05727C 8005667C 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* 057280 80056680 8FB40038 */ lw $s4, 0x38($sp)
|
|
/* 057284 80056684 8FB30034 */ lw $s3, 0x34($sp)
|
|
/* 057288 80056688 8FB20030 */ lw $s2, 0x30($sp)
|
|
/* 05728C 8005668C 8FB1002C */ lw $s1, 0x2c($sp)
|
|
/* 057290 80056690 8FB00028 */ lw $s0, 0x28($sp)
|
|
/* 057294 80056694 03E00008 */ jr $ra
|
|
/* 057298 80056698 27BD0040 */ addiu $sp, $sp, 0x40
|