mirror of
https://gitlab.com/kholdfuzion/goldeneye_src
synced 2026-08-31 09:00:54 -04:00
441 lines
19 KiB
C
441 lines
19 KiB
C
#include <ultra64.h>
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F01BAE0(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.late_rodata
|
|
glabel PI_80051D00
|
|
.word 0x40490FDB /*3.1415927*/
|
|
.text
|
|
glabel sub_GAME_7F01BAE0
|
|
/* 050610 7F01BAE0 27BDFFA0 */ addiu $sp, $sp, -0x60
|
|
/* 050614 7F01BAE4 AFB50058 */ sw $s5, 0x58($sp)
|
|
/* 050618 7F01BAE8 AFB2004C */ sw $s2, 0x4c($sp)
|
|
/* 05061C 7F01BAEC AFB00044 */ sw $s0, 0x44($sp)
|
|
/* 050620 7F01BAF0 00808025 */ move $s0, $a0
|
|
/* 050624 7F01BAF4 00A0A825 */ move $s5, $a1
|
|
/* 050628 7F01BAF8 AFBF005C */ sw $ra, 0x5c($sp)
|
|
/* 05062C 7F01BAFC AFB40054 */ sw $s4, 0x54($sp)
|
|
/* 050630 7F01BB00 AFB30050 */ sw $s3, 0x50($sp)
|
|
/* 050634 7F01BB04 AFB10048 */ sw $s1, 0x48($sp)
|
|
/* 050638 7F01BB08 F7BE0038 */ sdc1 $f30, 0x38($sp)
|
|
/* 05063C 7F01BB0C F7BC0030 */ sdc1 $f28, 0x30($sp)
|
|
/* 050640 7F01BB10 F7BA0028 */ sdc1 $f26, 0x28($sp)
|
|
/* 050644 7F01BB14 F7B80020 */ sdc1 $f24, 0x20($sp)
|
|
/* 050648 7F01BB18 F7B60018 */ sdc1 $f22, 0x18($sp)
|
|
/* 05064C 7F01BB1C F7B40010 */ sdc1 $f20, 0x10($sp)
|
|
/* 050650 7F01BB20 04A00126 */ bltz $a1, .L7F01BFBC
|
|
/* 050654 7F01BB24 00009025 */ move $s2, $zero
|
|
/* 050658 7F01BB28 3C014280 */ li $at, 0x42800000 # 64.000000
|
|
/* 05065C 7F01BB2C 4481F000 */ mtc1 $at, $f30
|
|
/* 050660 7F01BB30 3C018005 */ lui $at, %hi(PI_80051D00)
|
|
/* 050664 7F01BB34 C43C1D00 */ lwc1 $f28, %lo(PI_80051D00)($at)
|
|
/* 050668 7F01BB38 3C01C2DE */ li $at, 0xC2DE0000 # -111.000000
|
|
/* 05066C 7F01BB3C 44952000 */ mtc1 $s5, $f4
|
|
/* 050670 7F01BB40 4481C000 */ mtc1 $at, $f24
|
|
/* 050674 7F01BB44 3C01430F */ li $at, 0x430F0000 # 143.000000
|
|
/* 050678 7F01BB48 4481B000 */ mtc1 $at, $f22
|
|
/* 05067C 7F01BB4C 241100FF */ li $s1, 255
|
|
/* 050680 7F01BB50 468026A0 */ cvt.s.w $f26, $f4
|
|
/* 050684 7F01BB54 44923000 */ mtc1 $s2, $f6
|
|
.L7F01BB58:
|
|
/* 050688 7F01BB58 00000000 */ nop
|
|
/* 05068C 7F01BB5C 46803220 */ cvt.s.w $f8, $f6
|
|
/* 050690 7F01BB60 461C4282 */ mul.s $f10, $f8, $f28
|
|
/* 050694 7F01BB64 461A5503 */ div.s $f20, $f10, $f26
|
|
/* 050698 7F01BB68 0FC15FAB */ jal sinf
|
|
/* 05069C 7F01BB6C 4600A306 */ mov.s $f12, $f20
|
|
/* 0506A0 7F01BB70 461E0402 */ mul.s $f16, $f0, $f30
|
|
/* 0506A4 7F01BB74 4600A306 */ mov.s $f12, $f20
|
|
/* 0506A8 7F01BB78 4600848D */ trunc.w.s $f18, $f16
|
|
/* 0506AC 7F01BB7C 44139000 */ mfc1 $s3, $f18
|
|
/* 0506B0 7F01BB80 00000000 */ nop
|
|
/* 0506B4 7F01BB84 00137C00 */ sll $t7, $s3, 0x10
|
|
/* 0506B8 7F01BB88 0FC15FA8 */ jal cosf
|
|
/* 0506BC 7F01BB8C 000F9C03 */ sra $s3, $t7, 0x10
|
|
/* 0506C0 7F01BB90 3C01C280 */ li $at, 0xC2800000 # -64.000000
|
|
/* 0506C4 7F01BB94 44812000 */ mtc1 $at, $f4
|
|
/* 0506C8 7F01BB98 A6130000 */ sh $s3, ($s0)
|
|
/* 0506CC 7F01BB9C A6000004 */ sh $zero, 4($s0)
|
|
/* 0506D0 7F01BBA0 46040182 */ mul.s $f6, $f0, $f4
|
|
/* 0506D4 7F01BBA4 A6000006 */ sh $zero, 6($s0)
|
|
/* 0506D8 7F01BBA8 A6000008 */ sh $zero, 8($s0)
|
|
/* 0506DC 7F01BBAC A600000A */ sh $zero, 0xa($s0)
|
|
/* 0506E0 7F01BBB0 A211000C */ sb $s1, 0xc($s0)
|
|
/* 0506E4 7F01BBB4 A211000D */ sb $s1, 0xd($s0)
|
|
/* 0506E8 7F01BBB8 A211000E */ sb $s1, 0xe($s0)
|
|
/* 0506EC 7F01BBBC 4600320D */ trunc.w.s $f8, $f6
|
|
/* 0506F0 7F01BBC0 4600A306 */ mov.s $f12, $f20
|
|
/* 0506F4 7F01BBC4 44024000 */ mfc1 $v0, $f8
|
|
/* 0506F8 7F01BBC8 00000000 */ nop
|
|
/* 0506FC 7F01BBCC 0002A400 */ sll $s4, $v0, 0x10
|
|
/* 050700 7F01BBD0 00144403 */ sra $t0, $s4, 0x10
|
|
/* 050704 7F01BBD4 0100A025 */ move $s4, $t0
|
|
/* 050708 7F01BBD8 0FC15FA8 */ jal cosf
|
|
/* 05070C 7F01BBDC A6020002 */ sh $v0, 2($s0)
|
|
/* 050710 7F01BBE0 46180282 */ mul.s $f10, $f0, $f24
|
|
/* 050714 7F01BBE4 240A0001 */ li $t2, 1
|
|
/* 050718 7F01BBE8 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
|
|
/* 05071C 7F01BBEC 460AB401 */ sub.s $f16, $f22, $f10
|
|
/* 050720 7F01BBF0 4449F800 */ cfc1 $t1, $31
|
|
/* 050724 7F01BBF4 44CAF800 */ ctc1 $t2, $31
|
|
/* 050728 7F01BBF8 00000000 */ nop
|
|
/* 05072C 7F01BBFC 460084A4 */ cvt.w.s $f18, $f16
|
|
/* 050730 7F01BC00 444AF800 */ cfc1 $t2, $31
|
|
/* 050734 7F01BC04 00000000 */ nop
|
|
/* 050738 7F01BC08 314A0078 */ andi $t2, $t2, 0x78
|
|
/* 05073C 7F01BC0C 51400013 */ beql $t2, $zero, .L7F01BC5C
|
|
/* 050740 7F01BC10 440A9000 */ mfc1 $t2, $f18
|
|
/* 050744 7F01BC14 44819000 */ mtc1 $at, $f18
|
|
/* 050748 7F01BC18 240A0001 */ li $t2, 1
|
|
/* 05074C 7F01BC1C 46128481 */ sub.s $f18, $f16, $f18
|
|
/* 050750 7F01BC20 44CAF800 */ ctc1 $t2, $31
|
|
/* 050754 7F01BC24 00000000 */ nop
|
|
/* 050758 7F01BC28 460094A4 */ cvt.w.s $f18, $f18
|
|
/* 05075C 7F01BC2C 444AF800 */ cfc1 $t2, $31
|
|
/* 050760 7F01BC30 00000000 */ nop
|
|
/* 050764 7F01BC34 314A0078 */ andi $t2, $t2, 0x78
|
|
/* 050768 7F01BC38 15400005 */ bnez $t2, .L7F01BC50
|
|
/* 05076C 7F01BC3C 00000000 */ nop
|
|
/* 050770 7F01BC40 440A9000 */ mfc1 $t2, $f18
|
|
/* 050774 7F01BC44 3C018000 */ lui $at, 0x8000
|
|
/* 050778 7F01BC48 10000007 */ b .L7F01BC68
|
|
/* 05077C 7F01BC4C 01415025 */ or $t2, $t2, $at
|
|
.L7F01BC50:
|
|
/* 050780 7F01BC50 10000005 */ b .L7F01BC68
|
|
/* 050784 7F01BC54 240AFFFF */ li $t2, -1
|
|
/* 050788 7F01BC58 440A9000 */ mfc1 $t2, $f18
|
|
.L7F01BC5C:
|
|
/* 05078C 7F01BC5C 00000000 */ nop
|
|
/* 050790 7F01BC60 0540FFFB */ bltz $t2, .L7F01BC50
|
|
/* 050794 7F01BC64 00000000 */ nop
|
|
.L7F01BC68:
|
|
/* 050798 7F01BC68 44C9F800 */ ctc1 $t1, $31
|
|
/* 05079C 7F01BC6C A20A000C */ sb $t2, 0xc($s0)
|
|
/* 0507A0 7F01BC70 0FC15FA8 */ jal cosf
|
|
/* 0507A4 7F01BC74 4600A306 */ mov.s $f12, $f20
|
|
/* 0507A8 7F01BC78 46180102 */ mul.s $f4, $f0, $f24
|
|
/* 0507AC 7F01BC7C 240C0001 */ li $t4, 1
|
|
/* 0507B0 7F01BC80 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
|
|
/* 0507B4 7F01BC84 4604B181 */ sub.s $f6, $f22, $f4
|
|
/* 0507B8 7F01BC88 444BF800 */ cfc1 $t3, $31
|
|
/* 0507BC 7F01BC8C 44CCF800 */ ctc1 $t4, $31
|
|
/* 0507C0 7F01BC90 00000000 */ nop
|
|
/* 0507C4 7F01BC94 46003224 */ cvt.w.s $f8, $f6
|
|
/* 0507C8 7F01BC98 444CF800 */ cfc1 $t4, $31
|
|
/* 0507CC 7F01BC9C 00000000 */ nop
|
|
/* 0507D0 7F01BCA0 318C0078 */ andi $t4, $t4, 0x78
|
|
/* 0507D4 7F01BCA4 51800013 */ beql $t4, $zero, .L7F01BCF4
|
|
/* 0507D8 7F01BCA8 440C4000 */ mfc1 $t4, $f8
|
|
/* 0507DC 7F01BCAC 44814000 */ mtc1 $at, $f8
|
|
/* 0507E0 7F01BCB0 240C0001 */ li $t4, 1
|
|
/* 0507E4 7F01BCB4 46083201 */ sub.s $f8, $f6, $f8
|
|
/* 0507E8 7F01BCB8 44CCF800 */ ctc1 $t4, $31
|
|
/* 0507EC 7F01BCBC 00000000 */ nop
|
|
/* 0507F0 7F01BCC0 46004224 */ cvt.w.s $f8, $f8
|
|
/* 0507F4 7F01BCC4 444CF800 */ cfc1 $t4, $31
|
|
/* 0507F8 7F01BCC8 00000000 */ nop
|
|
/* 0507FC 7F01BCCC 318C0078 */ andi $t4, $t4, 0x78
|
|
/* 050800 7F01BCD0 15800005 */ bnez $t4, .L7F01BCE8
|
|
/* 050804 7F01BCD4 00000000 */ nop
|
|
/* 050808 7F01BCD8 440C4000 */ mfc1 $t4, $f8
|
|
/* 05080C 7F01BCDC 3C018000 */ lui $at, 0x8000
|
|
/* 050810 7F01BCE0 10000007 */ b .L7F01BD00
|
|
/* 050814 7F01BCE4 01816025 */ or $t4, $t4, $at
|
|
.L7F01BCE8:
|
|
/* 050818 7F01BCE8 10000005 */ b .L7F01BD00
|
|
/* 05081C 7F01BCEC 240CFFFF */ li $t4, -1
|
|
/* 050820 7F01BCF0 440C4000 */ mfc1 $t4, $f8
|
|
.L7F01BCF4:
|
|
/* 050824 7F01BCF4 00000000 */ nop
|
|
/* 050828 7F01BCF8 0580FFFB */ bltz $t4, .L7F01BCE8
|
|
/* 05082C 7F01BCFC 00000000 */ nop
|
|
.L7F01BD00:
|
|
/* 050830 7F01BD00 44CBF800 */ ctc1 $t3, $31
|
|
/* 050834 7F01BD04 A20C000D */ sb $t4, 0xd($s0)
|
|
/* 050838 7F01BD08 0FC15FA8 */ jal cosf
|
|
/* 05083C 7F01BD0C 4600A306 */ mov.s $f12, $f20
|
|
/* 050840 7F01BD10 46180282 */ mul.s $f10, $f0, $f24
|
|
/* 050844 7F01BD14 240E0001 */ li $t6, 1
|
|
/* 050848 7F01BD18 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
|
|
/* 05084C 7F01BD1C 460AB401 */ sub.s $f16, $f22, $f10
|
|
/* 050850 7F01BD20 444DF800 */ cfc1 $t5, $31
|
|
/* 050854 7F01BD24 44CEF800 */ ctc1 $t6, $31
|
|
/* 050858 7F01BD28 00000000 */ nop
|
|
/* 05085C 7F01BD2C 460084A4 */ cvt.w.s $f18, $f16
|
|
/* 050860 7F01BD30 444EF800 */ cfc1 $t6, $31
|
|
/* 050864 7F01BD34 00000000 */ nop
|
|
/* 050868 7F01BD38 31CE0078 */ andi $t6, $t6, 0x78
|
|
/* 05086C 7F01BD3C 51C00013 */ beql $t6, $zero, .L7F01BD8C
|
|
/* 050870 7F01BD40 440E9000 */ mfc1 $t6, $f18
|
|
/* 050874 7F01BD44 44819000 */ mtc1 $at, $f18
|
|
/* 050878 7F01BD48 240E0001 */ li $t6, 1
|
|
/* 05087C 7F01BD4C 46128481 */ sub.s $f18, $f16, $f18
|
|
/* 050880 7F01BD50 44CEF800 */ ctc1 $t6, $31
|
|
/* 050884 7F01BD54 00000000 */ nop
|
|
/* 050888 7F01BD58 460094A4 */ cvt.w.s $f18, $f18
|
|
/* 05088C 7F01BD5C 444EF800 */ cfc1 $t6, $31
|
|
/* 050890 7F01BD60 00000000 */ nop
|
|
/* 050894 7F01BD64 31CE0078 */ andi $t6, $t6, 0x78
|
|
/* 050898 7F01BD68 15C00005 */ bnez $t6, .L7F01BD80
|
|
/* 05089C 7F01BD6C 00000000 */ nop
|
|
/* 0508A0 7F01BD70 440E9000 */ mfc1 $t6, $f18
|
|
/* 0508A4 7F01BD74 3C018000 */ lui $at, 0x8000
|
|
/* 0508A8 7F01BD78 10000007 */ b .L7F01BD98
|
|
/* 0508AC 7F01BD7C 01C17025 */ or $t6, $t6, $at
|
|
.L7F01BD80:
|
|
/* 0508B0 7F01BD80 10000005 */ b .L7F01BD98
|
|
/* 0508B4 7F01BD84 240EFFFF */ li $t6, -1
|
|
/* 0508B8 7F01BD88 440E9000 */ mfc1 $t6, $f18
|
|
.L7F01BD8C:
|
|
/* 0508BC 7F01BD8C 00000000 */ nop
|
|
/* 0508C0 7F01BD90 05C0FFFB */ bltz $t6, .L7F01BD80
|
|
/* 0508C4 7F01BD94 00000000 */ nop
|
|
.L7F01BD98:
|
|
/* 0508C8 7F01BD98 44CDF800 */ ctc1 $t5, $31
|
|
/* 0508CC 7F01BD9C A20E000E */ sb $t6, 0xe($s0)
|
|
/* 0508D0 7F01BDA0 A200000F */ sb $zero, 0xf($s0)
|
|
/* 0508D4 7F01BDA4 12400081 */ beqz $s2, .L7F01BFAC
|
|
/* 0508D8 7F01BDA8 26100010 */ addiu $s0, $s0, 0x10
|
|
/* 0508DC 7F01BDAC 0255082A */ slt $at, $s2, $s5
|
|
/* 0508E0 7F01BDB0 1020007E */ beqz $at, .L7F01BFAC
|
|
/* 0508E4 7F01BDB4 00137823 */ negu $t7, $s3
|
|
/* 0508E8 7F01BDB8 A60F0000 */ sh $t7, ($s0)
|
|
/* 0508EC 7F01BDBC A6140002 */ sh $s4, 2($s0)
|
|
/* 0508F0 7F01BDC0 A6000004 */ sh $zero, 4($s0)
|
|
/* 0508F4 7F01BDC4 A6000006 */ sh $zero, 6($s0)
|
|
/* 0508F8 7F01BDC8 A6000008 */ sh $zero, 8($s0)
|
|
/* 0508FC 7F01BDCC A600000A */ sh $zero, 0xa($s0)
|
|
/* 050900 7F01BDD0 A211000C */ sb $s1, 0xc($s0)
|
|
/* 050904 7F01BDD4 A211000D */ sb $s1, 0xd($s0)
|
|
/* 050908 7F01BDD8 A211000E */ sb $s1, 0xe($s0)
|
|
/* 05090C 7F01BDDC 0FC15FA8 */ jal cosf
|
|
/* 050910 7F01BDE0 4600A306 */ mov.s $f12, $f20
|
|
/* 050914 7F01BDE4 46180102 */ mul.s $f4, $f0, $f24
|
|
/* 050918 7F01BDE8 24190001 */ li $t9, 1
|
|
/* 05091C 7F01BDEC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
|
|
/* 050920 7F01BDF0 4604B181 */ sub.s $f6, $f22, $f4
|
|
/* 050924 7F01BDF4 4458F800 */ cfc1 $t8, $31
|
|
/* 050928 7F01BDF8 44D9F800 */ ctc1 $t9, $31
|
|
/* 05092C 7F01BDFC 00000000 */ nop
|
|
/* 050930 7F01BE00 46003224 */ cvt.w.s $f8, $f6
|
|
/* 050934 7F01BE04 4459F800 */ cfc1 $t9, $31
|
|
/* 050938 7F01BE08 00000000 */ nop
|
|
/* 05093C 7F01BE0C 33390078 */ andi $t9, $t9, 0x78
|
|
/* 050940 7F01BE10 53200013 */ beql $t9, $zero, .L7F01BE60
|
|
/* 050944 7F01BE14 44194000 */ mfc1 $t9, $f8
|
|
/* 050948 7F01BE18 44814000 */ mtc1 $at, $f8
|
|
/* 05094C 7F01BE1C 24190001 */ li $t9, 1
|
|
/* 050950 7F01BE20 46083201 */ sub.s $f8, $f6, $f8
|
|
/* 050954 7F01BE24 44D9F800 */ ctc1 $t9, $31
|
|
/* 050958 7F01BE28 00000000 */ nop
|
|
/* 05095C 7F01BE2C 46004224 */ cvt.w.s $f8, $f8
|
|
/* 050960 7F01BE30 4459F800 */ cfc1 $t9, $31
|
|
/* 050964 7F01BE34 00000000 */ nop
|
|
/* 050968 7F01BE38 33390078 */ andi $t9, $t9, 0x78
|
|
/* 05096C 7F01BE3C 17200005 */ bnez $t9, .L7F01BE54
|
|
/* 050970 7F01BE40 00000000 */ nop
|
|
/* 050974 7F01BE44 44194000 */ mfc1 $t9, $f8
|
|
/* 050978 7F01BE48 3C018000 */ lui $at, 0x8000
|
|
/* 05097C 7F01BE4C 10000007 */ b .L7F01BE6C
|
|
/* 050980 7F01BE50 0321C825 */ or $t9, $t9, $at
|
|
.L7F01BE54:
|
|
/* 050984 7F01BE54 10000005 */ b .L7F01BE6C
|
|
/* 050988 7F01BE58 2419FFFF */ li $t9, -1
|
|
/* 05098C 7F01BE5C 44194000 */ mfc1 $t9, $f8
|
|
.L7F01BE60:
|
|
/* 050990 7F01BE60 00000000 */ nop
|
|
/* 050994 7F01BE64 0720FFFB */ bltz $t9, .L7F01BE54
|
|
/* 050998 7F01BE68 00000000 */ nop
|
|
.L7F01BE6C:
|
|
/* 05099C 7F01BE6C 44D8F800 */ ctc1 $t8, $31
|
|
/* 0509A0 7F01BE70 A219000C */ sb $t9, 0xc($s0)
|
|
/* 0509A4 7F01BE74 0FC15FA8 */ jal cosf
|
|
/* 0509A8 7F01BE78 4600A306 */ mov.s $f12, $f20
|
|
/* 0509AC 7F01BE7C 46180282 */ mul.s $f10, $f0, $f24
|
|
/* 0509B0 7F01BE80 24090001 */ li $t1, 1
|
|
/* 0509B4 7F01BE84 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
|
|
/* 0509B8 7F01BE88 460AB401 */ sub.s $f16, $f22, $f10
|
|
/* 0509BC 7F01BE8C 4448F800 */ cfc1 $t0, $31
|
|
/* 0509C0 7F01BE90 44C9F800 */ ctc1 $t1, $31
|
|
/* 0509C4 7F01BE94 00000000 */ nop
|
|
/* 0509C8 7F01BE98 460084A4 */ cvt.w.s $f18, $f16
|
|
/* 0509CC 7F01BE9C 4449F800 */ cfc1 $t1, $31
|
|
/* 0509D0 7F01BEA0 00000000 */ nop
|
|
/* 0509D4 7F01BEA4 31290078 */ andi $t1, $t1, 0x78
|
|
/* 0509D8 7F01BEA8 51200013 */ beql $t1, $zero, .L7F01BEF8
|
|
/* 0509DC 7F01BEAC 44099000 */ mfc1 $t1, $f18
|
|
/* 0509E0 7F01BEB0 44819000 */ mtc1 $at, $f18
|
|
/* 0509E4 7F01BEB4 24090001 */ li $t1, 1
|
|
/* 0509E8 7F01BEB8 46128481 */ sub.s $f18, $f16, $f18
|
|
/* 0509EC 7F01BEBC 44C9F800 */ ctc1 $t1, $31
|
|
/* 0509F0 7F01BEC0 00000000 */ nop
|
|
/* 0509F4 7F01BEC4 460094A4 */ cvt.w.s $f18, $f18
|
|
/* 0509F8 7F01BEC8 4449F800 */ cfc1 $t1, $31
|
|
/* 0509FC 7F01BECC 00000000 */ nop
|
|
/* 050A00 7F01BED0 31290078 */ andi $t1, $t1, 0x78
|
|
/* 050A04 7F01BED4 15200005 */ bnez $t1, .L7F01BEEC
|
|
/* 050A08 7F01BED8 00000000 */ nop
|
|
/* 050A0C 7F01BEDC 44099000 */ mfc1 $t1, $f18
|
|
/* 050A10 7F01BEE0 3C018000 */ lui $at, 0x8000
|
|
/* 050A14 7F01BEE4 10000007 */ b .L7F01BF04
|
|
/* 050A18 7F01BEE8 01214825 */ or $t1, $t1, $at
|
|
.L7F01BEEC:
|
|
/* 050A1C 7F01BEEC 10000005 */ b .L7F01BF04
|
|
/* 050A20 7F01BEF0 2409FFFF */ li $t1, -1
|
|
/* 050A24 7F01BEF4 44099000 */ mfc1 $t1, $f18
|
|
.L7F01BEF8:
|
|
/* 050A28 7F01BEF8 00000000 */ nop
|
|
/* 050A2C 7F01BEFC 0520FFFB */ bltz $t1, .L7F01BEEC
|
|
/* 050A30 7F01BF00 00000000 */ nop
|
|
.L7F01BF04:
|
|
/* 050A34 7F01BF04 44C8F800 */ ctc1 $t0, $31
|
|
/* 050A38 7F01BF08 A209000D */ sb $t1, 0xd($s0)
|
|
/* 050A3C 7F01BF0C 0FC15FA8 */ jal cosf
|
|
/* 050A40 7F01BF10 4600A306 */ mov.s $f12, $f20
|
|
/* 050A44 7F01BF14 46180102 */ mul.s $f4, $f0, $f24
|
|
/* 050A48 7F01BF18 240B0001 */ li $t3, 1
|
|
/* 050A4C 7F01BF1C 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
|
|
/* 050A50 7F01BF20 4604B181 */ sub.s $f6, $f22, $f4
|
|
/* 050A54 7F01BF24 444AF800 */ cfc1 $t2, $31
|
|
/* 050A58 7F01BF28 44CBF800 */ ctc1 $t3, $31
|
|
/* 050A5C 7F01BF2C 00000000 */ nop
|
|
/* 050A60 7F01BF30 46003224 */ cvt.w.s $f8, $f6
|
|
/* 050A64 7F01BF34 444BF800 */ cfc1 $t3, $31
|
|
/* 050A68 7F01BF38 00000000 */ nop
|
|
/* 050A6C 7F01BF3C 316B0078 */ andi $t3, $t3, 0x78
|
|
/* 050A70 7F01BF40 51600013 */ beql $t3, $zero, .L7F01BF90
|
|
/* 050A74 7F01BF44 440B4000 */ mfc1 $t3, $f8
|
|
/* 050A78 7F01BF48 44814000 */ mtc1 $at, $f8
|
|
/* 050A7C 7F01BF4C 240B0001 */ li $t3, 1
|
|
/* 050A80 7F01BF50 46083201 */ sub.s $f8, $f6, $f8
|
|
/* 050A84 7F01BF54 44CBF800 */ ctc1 $t3, $31
|
|
/* 050A88 7F01BF58 00000000 */ nop
|
|
/* 050A8C 7F01BF5C 46004224 */ cvt.w.s $f8, $f8
|
|
/* 050A90 7F01BF60 444BF800 */ cfc1 $t3, $31
|
|
/* 050A94 7F01BF64 00000000 */ nop
|
|
/* 050A98 7F01BF68 316B0078 */ andi $t3, $t3, 0x78
|
|
/* 050A9C 7F01BF6C 15600005 */ bnez $t3, .L7F01BF84
|
|
/* 050AA0 7F01BF70 00000000 */ nop
|
|
/* 050AA4 7F01BF74 440B4000 */ mfc1 $t3, $f8
|
|
/* 050AA8 7F01BF78 3C018000 */ lui $at, 0x8000
|
|
/* 050AAC 7F01BF7C 10000007 */ b .L7F01BF9C
|
|
/* 050AB0 7F01BF80 01615825 */ or $t3, $t3, $at
|
|
.L7F01BF84:
|
|
/* 050AB4 7F01BF84 10000005 */ b .L7F01BF9C
|
|
/* 050AB8 7F01BF88 240BFFFF */ li $t3, -1
|
|
/* 050ABC 7F01BF8C 440B4000 */ mfc1 $t3, $f8
|
|
.L7F01BF90:
|
|
/* 050AC0 7F01BF90 00000000 */ nop
|
|
/* 050AC4 7F01BF94 0560FFFB */ bltz $t3, .L7F01BF84
|
|
/* 050AC8 7F01BF98 00000000 */ nop
|
|
.L7F01BF9C:
|
|
/* 050ACC 7F01BF9C 44CAF800 */ ctc1 $t2, $31
|
|
/* 050AD0 7F01BFA0 A20B000E */ sb $t3, 0xe($s0)
|
|
/* 050AD4 7F01BFA4 A200000F */ sb $zero, 0xf($s0)
|
|
/* 050AD8 7F01BFA8 26100010 */ addiu $s0, $s0, 0x10
|
|
.L7F01BFAC:
|
|
/* 050ADC 7F01BFAC 26520002 */ addiu $s2, $s2, 2
|
|
/* 050AE0 7F01BFB0 02B2082A */ slt $at, $s5, $s2
|
|
/* 050AE4 7F01BFB4 5020FEE8 */ beql $at, $zero, .L7F01BB58
|
|
/* 050AE8 7F01BFB8 44923000 */ mtc1 $s2, $f6
|
|
.L7F01BFBC:
|
|
/* 050AEC 7F01BFBC 8FBF005C */ lw $ra, 0x5c($sp)
|
|
/* 050AF0 7F01BFC0 D7B40010 */ ldc1 $f20, 0x10($sp)
|
|
/* 050AF4 7F01BFC4 D7B60018 */ ldc1 $f22, 0x18($sp)
|
|
/* 050AF8 7F01BFC8 D7B80020 */ ldc1 $f24, 0x20($sp)
|
|
/* 050AFC 7F01BFCC D7BA0028 */ ldc1 $f26, 0x28($sp)
|
|
/* 050B00 7F01BFD0 D7BC0030 */ ldc1 $f28, 0x30($sp)
|
|
/* 050B04 7F01BFD4 D7BE0038 */ ldc1 $f30, 0x38($sp)
|
|
/* 050B08 7F01BFD8 8FB00044 */ lw $s0, 0x44($sp)
|
|
/* 050B0C 7F01BFDC 8FB10048 */ lw $s1, 0x48($sp)
|
|
/* 050B10 7F01BFE0 8FB2004C */ lw $s2, 0x4c($sp)
|
|
/* 050B14 7F01BFE4 8FB30050 */ lw $s3, 0x50($sp)
|
|
/* 050B18 7F01BFE8 8FB40054 */ lw $s4, 0x54($sp)
|
|
/* 050B1C 7F01BFEC 8FB50058 */ lw $s5, 0x58($sp)
|
|
/* 050B20 7F01BFF0 03E00008 */ jr $ra
|
|
/* 050B24 7F01BFF4 27BD0060 */ addiu $sp, $sp, 0x60
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef NONMATCHING
|
|
void sub_GAME_7F01BFF8(void) {
|
|
|
|
}
|
|
#else
|
|
GLOBAL_ASM(
|
|
.text
|
|
glabel sub_GAME_7F01BFF8
|
|
/* 050B28 7F01BFF8 240A000A */ li $t2, 10
|
|
/* 050B2C 7F01BFFC 3C09BF00 */ lui $t1, 0xbf00
|
|
/* 050B30 7F01C000 3C080400 */ lui $t0, 0x400
|
|
/* 050B34 7F01C004 28C10011 */ slti $at, $a2, 0x11
|
|
.L7F01C008:
|
|
/* 050B38 7F01C008 14200003 */ bnez $at, .L7F01C018
|
|
/* 050B3C 7F01C00C 00801825 */ move $v1, $a0
|
|
/* 050B40 7F01C010 10000004 */ b .L7F01C024
|
|
/* 050B44 7F01C014 24020010 */ li $v0, 16
|
|
.L7F01C018:
|
|
/* 050B48 7F01C018 00061600 */ sll $v0, $a2, 0x18
|
|
/* 050B4C 7F01C01C 00027603 */ sra $t6, $v0, 0x18
|
|
/* 050B50 7F01C020 01C01025 */ move $v0, $t6
|
|
.L7F01C024:
|
|
/* 050B54 7F01C024 244FFFFF */ addiu $t7, $v0, -1
|
|
/* 050B58 7F01C028 000FC100 */ sll $t8, $t7, 4
|
|
/* 050B5C 7F01C02C 331900FF */ andi $t9, $t8, 0xff
|
|
/* 050B60 7F01C030 00026900 */ sll $t5, $v0, 4
|
|
/* 050B64 7F01C034 00195C00 */ sll $t3, $t9, 0x10
|
|
/* 050B68 7F01C038 01686025 */ or $t4, $t3, $t0
|
|
/* 050B6C 7F01C03C 31AEFFFF */ andi $t6, $t5, 0xffff
|
|
/* 050B70 7F01C040 2442FFFD */ addiu $v0, $v0, -3
|
|
/* 050B74 7F01C044 018E7825 */ or $t7, $t4, $t6
|
|
/* 050B78 7F01C048 AC650004 */ sw $a1, 4($v1)
|
|
/* 050B7C 7F01C04C 0002C600 */ sll $t8, $v0, 0x18
|
|
/* 050B80 7F01C050 AC6F0000 */ sw $t7, ($v1)
|
|
/* 050B84 7F01C054 24840008 */ addiu $a0, $a0, 8
|
|
/* 050B88 7F01C058 24A500E0 */ addiu $a1, $a1, 0xe0
|
|
/* 050B8C 7F01C05C 00181603 */ sra $v0, $t8, 0x18
|
|
.L7F01C060:
|
|
/* 050B90 7F01C060 004A0019 */ multu $v0, $t2
|
|
/* 050B94 7F01C064 2442FFFF */ addiu $v0, $v0, -1
|
|
/* 050B98 7F01C068 00801825 */ move $v1, $a0
|
|
/* 050B9C 7F01C06C AC690000 */ sw $t1, ($v1)
|
|
/* 050BA0 7F01C070 24840008 */ addiu $a0, $a0, 8
|
|
/* 050BA4 7F01C074 00003812 */ mflo $a3
|
|
/* 050BA8 7F01C078 24EC000A */ addiu $t4, $a3, 0xa
|
|
/* 050BAC 7F01C07C 318E00FF */ andi $t6, $t4, 0xff
|
|
/* 050BB0 7F01C080 30EB00FF */ andi $t3, $a3, 0xff
|
|
/* 050BB4 7F01C084 000B6C00 */ sll $t5, $t3, 0x10
|
|
/* 050BB8 7F01C088 000E7A00 */ sll $t7, $t6, 8
|
|
/* 050BBC 7F01C08C 24F90014 */ addiu $t9, $a3, 0x14
|
|
/* 050BC0 7F01C090 332B00FF */ andi $t3, $t9, 0xff
|
|
/* 050BC4 7F01C094 01AFC025 */ or $t8, $t5, $t7
|
|
/* 050BC8 7F01C098 00027600 */ sll $t6, $v0, 0x18
|
|
/* 050BCC 7F01C09C 000E1603 */ sra $v0, $t6, 0x18
|
|
/* 050BD0 7F01C0A0 030B6025 */ or $t4, $t8, $t3
|
|
/* 050BD4 7F01C0A4 0441FFEE */ bgez $v0, .L7F01C060
|
|
/* 050BD8 7F01C0A8 AC6C0004 */ sw $t4, 4($v1)
|
|
/* 050BDC 7F01C0AC 24C6FFF2 */ addiu $a2, $a2, -0xe
|
|
/* 050BE0 7F01C0B0 28C10003 */ slti $at, $a2, 3
|
|
/* 050BE4 7F01C0B4 5020FFD4 */ beql $at, $zero, .L7F01C008
|
|
/* 050BE8 7F01C0B8 28C10011 */ slti $at, $a2, 0x11
|
|
/* 050BEC 7F01C0BC 3C0FB800 */ lui $t7, 0xb800
|
|
/* 050BF0 7F01C0C0 AC8F0000 */ sw $t7, ($a0)
|
|
/* 050BF4 7F01C0C4 24820008 */ addiu $v0, $a0, 8
|
|
/* 050BF8 7F01C0C8 03E00008 */ jr $ra
|
|
/* 050BFC 7F01C0CC AC800004 */ sw $zero, 4($a0)
|
|
)
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|